0

falseを返さず、エラーを表示していません。jfiddlehttp://jsfiddle.net/paYAp/2/を参照してください

私のJavaScipt:

function validateForm() {
    var error = "";
    var x=document.getElementById('fname').value;
    var y=document.getElementById('lname').value;
    /*  
    Additional variable defined here, commented out for debugging
    */
    if ((x==null || x=="") || (y==null || y==""))
      {
      error += "-First and last name required. <br />";
      }
      /*
      There were additional statements here, commented out for debugging
     */
    if (error != ""){
      alert(error);
      //document.getElementById('error').innerHTML = "Error: " + error;
      return false;
    }
}

フォームにも添付onsubmit="return validateForm()"しました。

誰かが私を見て、何かが足りないかどうか教えてもらえますか?

4

1 に答える 1

3

あなたは実際に を返していないかもしれません.検証に合格した場合は返さないのでfalse、戻っているかもしれません.undefinedtrue

これにより、正しくない場合でも、検証が正しいと思わせることができます。

関数の最後に追加return true;すると、結局 false を返さないことが証明される場合があります。

function validateForm() {
    var error = "";
    var x=document.getElementById('fname').value;
    var y=document.getElementById('lname').value;
    /*  
    Additional variable defined here, commented out for debugging
    */
    if ((x==null || x=="") || (y==null || y==""))
      {
      error += "-First and last name required. <br />";
      }
      /*
      There were additional statements here, commented out for debugging
     */
    if (error != ""){
      alert(error);
      //document.getElementById('error').innerHTML = "Error: " + error;
      return false;
    }

    alert("Actually, returning true!");
    return true;
}
于 2012-10-29T22:53:27.863 に答える