2016-03-05 2 views
0

Второй, если не работает, а третий не работает, если я помещаю переменную вместо «2», которую я пытался поставить if (cont == len), но не работает , В чем проблема?IF не работает при использовании переменных

function alert(Vform){ 
var i=0; 
var cont=0; 
var len=Vform.length; 
for (i=0;i<=len;i++){ 
    if (Vform.elements[i].checked!=true){ 
    cont=cont+1 
    } 
} 
if (cont!=2){ 
    window.alert("Please select date and time"); 
} 

}

+0

Я не знаю, если это приводит к проблеме, но я бы не использовать 'alert' как моя собственная функция name, потому что 'alert' (даже * без * окна) уже является частью стандартного API браузера. [(документация)] (https://developer.mozilla.org/en-US/docs/Web/API/Window/alert) – leroydev

+0

Я уверен, что if работает отлично; однако ваша логика может не работать так, как вы ожидаете. Я не вижу первого, если, но каким образом не логика второго не работает и какая переменная вы заменяете на вторую в третьем. – Gavin

ответ

0

Попробуйте сделать эти изменения:

function alert(Vform) 
{ 
var cont=0; 
var len=Vform.length; 
for (var i=0;i<=len;i++) 
{ 
    if (Vform.elements[i].checked!=true) 
    { 
     cont++; 
    } 
} 
if (cont != 2) 
{ 
    alert("Please select date and time"); 
} 
} 
+0

Я выяснил, что проблема в Vform.elements [i] .checked , потому что если я заменил «i» на любое число ниже 26 (len), это сработает. Я не понимаю, почему – AJAA

0

Ваш цикл должен быть.

for (i=0;i<len;i++){ 
    //code 
} 

Он должен проверить i<len и не i<=len, поскольку элемент массива начинаются с нуля на основе индекса

Смежные вопросы