0

while内のifステートメントを関数でループしようとしています。ただし、最初のifステートメントにのみヒットし、ループを停止します。

サンプル:

while(No.length == 0 || Name.length == 0 || Tel.length == 0 
      || Date.length == 0 || Email.length == 0) {

    alert("Don't leave blank!");

    if (No.length == 0) {
        document.getElementById('Nos').style.visibility = 'visible';
        return false;   
    }

    if(Name.length == 0) {
        document.getElementById('Name').style.visibility = 'visible';
        return false;   
    }
    //continues same if statement for rest of the elements variables.
}

最初のifステートメントにのみ移動し、ループしません。

4

3 に答える 3

2

ループの内側から戻ってきます。それはループを壊します。ループの次のラウンドに進みたい場合は、continue代わりにを使用してください。ループから抜け出したいが、関数全体から戻りたくない場合は、を使用しますbreak

ここで、jQueryループを使用している場合、それは実際には単なる関数であるため、returnを使用します。

$.each([1,2,3,4], function(index, x) {
    if (x < 4) return true; // equivalent to continue
    if (x == 4) return false; // equivalent to break
});

ただし、これはjQueryループ専用であり、Javascript標準ループ用ではありません。

于 2012-07-18T16:35:29.613 に答える
1

私が見ることができる最初のエラーは、たとえば「\」でアラートをエスケープする必要があるということです。

alert('Don\'t leave blank!');

そして、これを書くと、ループは続行します:

while(No.length == 0 || Name.length == 0 || Tel.length == 0 || Date.length == 0 || Email.length == 0) {

    if (No.length == 0) {
        document.getElementById('Nos').style.visibility = 'visible';
    }
    if(Name.length == 0) {
        document.getElementById('Name').style.visibility = 'visible';
    }
    return true;
}

また試すことができます:

while(No.length == 0 && Name.length == 0 && Tel.length == 0 && Date.length == 0 && Email.length == 0) {

     document.getElementById('Nos').style.visibility = 'visible';      
     document.getElementById('Name').style.visibility = 'visible';
     continue;
}
于 2012-07-18T16:38:03.353 に答える
0

多分これ?

function test_all_fields() {
    var No = document.getElementById('No');
    var Nos = document.getElementById('Nos');
    var Name = document.getElementById('Name');
    // ...
    Nos.style.visibility = (No.value.length==0) ? 'visible':'hidden';
    Names.style.visibility = (Name.value.length==0) ? 'visible':'hidden';
    //...
    //continues same if statement for rest of the elements variables.
    if (No.value.length >0 && Name.value.length >0 && Tel.value.length>0 && Date.value.length >0 && Email.value.length>0) {
        return true;
    }
    else {
        alert("Don\'t leave blank!");
        return false;
    }
}
于 2012-07-18T16:42:26.133 に答える