1

'getElementById()'と'.value'を使用して、フィールドを検証しようとしています。ただし、getElementById.valueが機能していないか、一部のコードが関数と重複しているようです。

更新されたJavascript関数:

function validate() {
    var Name = document.getElementById('Name').value;
    var Tel = document.getElementById('Tel').value;
    var FaxNo = document.getElementById('FaxNo').value;
    if (Name != "") //wanted to check for alphabets only.
    {
         alert("Correct");
         return true; //doesnt go to next.php
    }
    else 
    {
          alert("Don leave blank!")
          return false;
    }
    if (isNaN(Tel)) //check only numbers. Same code for FaxNo.
    {
        alert("Correct");
        return true; //doesnt go to next.php
    }
    else 
    {
      alert("invalid");
      return false
    }

  return true; //doesn't go to next.php
}

私のフォーム:

<Form action ="next.php" method="post">
<input name="Name" type="text" id="Name" value=""/>
<input name="Tel" type="text" id="Tel" value=""/>
<input name="FaxNo" type="text" id="FaxNo" value=""/>
<input type="submit" name="submit" onclick="return validate();"/>
</Form>

私はすでにonclick関数をJavascriptに定義しており、returnfalseも追加しようとしました。しかし、アラートはまだ表示されません。親切なアドバイス。

4

2 に答える 2

6

マークアップが無効です:

<input name="Name" type="text" id="Name" " value=""/>
                                         ^-----------should be removed

"したがって、修正すると、余分な文字がすべて削除されます。

<input name="Name" type="text" id="Name" value=""/>
<input name="Name" type="text" id="Name" value=""/>
<input name="Tel" type="text" id="Tel" value=""/>
<input name="FaxNo" type="text" id="FaxNo" value=""/>

送信を防ぐために、入力が無効な場合は、次のような方法を試すことができます。

function validate() {
    var Name = document.getElementById('Name').value;
    var Tel = document.getElementById('Tel').value;
    var FaxNo = document.getElementById('FaxNo').value;

    if (Name != "") //wanted to check for alphabets only.
        alert("Correct")
    else {
        alert("Don leave blank!")
        return false;
    }

    if (isNumeric(Tel)) //check only numbers. Same code for FaxNo.
        alert("Correct")
    else {
        alert("invalid");
        return false;
    }
}
//Borrowed from jQuery lib
function isNumeric( obj ){
    return !isNaN( parseFloat(obj) ) && isFinite( obj )
}

<input type="submit" name="submit" onclick="return validate()"/>
于 2012-07-17T17:21:28.087 に答える
1

これを試して、

function validate() {
    var Name = document.getElementById('Name').value;
    var Tel = document.getElementById('Tel').value;
    var FaxNo = document.getElementById('FaxNo').value;
    if (Name != "") {}
    else {alert("Don leave blank!"); return false;}
    if (isNaN(Tel)){ alert("invalid"); return false;}
    else { }
return true;
}

HTML送信ボタンのコードは次のようになります

<input type="submit" name="submit" onclick="return validate()"/>

検証エラーが発生した場合にフォームを送信しないようにするには、returnfalseを使用します。

于 2012-07-17T17:28:21.403 に答える