прежде чем задавать свой вопрос, я хотел, чтобы все знали, что я ценю тот факт, что всегда кто-то там готов помочь, и в конце концов я постараюсь вернуть сообщество настолько, насколько смогу. Благодаря
Теперь я хотел бы получить несколько указаний относительно того, как правильно использовать цикл "for... in" в JavaScript, я уже провел некоторое исследование и попробовал пару вещей, но мне все еще не ясно как правильно его использовать.
Скажем, у меня есть случайное число тегов "select" в HTML-форме, и я не требую от пользователя выбора опции для всех из них, они могут оставить некоторые нетронутые, если они захотят. Однако мне нужно знать, выбрали ли они ни одного или хотя бы одного.
То, как я пытаюсь выяснить, выбрал ли пользователь какой-либо из них, используется цикл "for... in". Например:
var allSelected = $("select option:selected");
var totalSelected = $("select option:selected").length;
Первая переменная создает массив всех выбранных параметров. Вторая переменная сообщает мне, сколько выбранных параметров у меня есть в форме (выбор тегов может быть более одного, и он изменяется каждый раз). Теперь, чтобы увидеть, был ли выбран какой-либо элемент, я просматриваю каждый элемент (выбранный параметр) и извлекаю атрибут "значение". По умолчанию тег "option" имеет value = "0", поэтому, если какой-либо выбранный параметр возвращает значение больше 0, я знаю, что выбран хотя бы один параметр, однако он не должен быть в порядке, это мой цикл пока:
for(var i = 0; i < totalSelected; i++){
var eachOption = $(allSelected[i]).val();
var defaultValue = 0;
if(eachOption == defaultValue){
...redirect to another page
}else if(eachOption > defaultValue){
... I display an alert
}
}
Моя проблема заключается в том, что как только "if" соответствует значению 0, он отправляет пользователя на следующую страницу, не тестируя остальные элементы в массиве, и пользователь мог выбрать второй или третий варианты.
То, что я действительно хочу сделать, это проверить все элементы в массиве, а затем сделать следующее действие, на мой взгляд, так я могу это сделать, но я не понимаю:
var randomValue = 25;
for(randomValue in allSelected){
var found = true;
var notFound = false
if(found){
display an alert
}else{
redirect to next page
}
}
Этот цикл или логика, которую я использую, являются ошибочными (я уверен), то, что я хочу сделать, это проверить все элементы в массиве на одну переменную и соответственно выполнить следующее действие.
Надеюсь, это смущает вас, ребята, любая помощь будет оценена.
Спасибо,
JC