0
<!DOCTYPE html>

<html>
<head>
    <meta charset="utf-8">
        <title>Javascript Form Testing</title>
</head>

<body>
Name: <input type="text" name="Name" value="Name" id="fname"> <br>
Email: <input type="text" name="Email" value="Email" id="mail" > <br>
Phone: <input type="text" name="Number" value="Phone Number" id="dvr" onchange="validatePhone();">
<span id="phoneval"> ?</span>

    <script type="text/javascript">
    phonenum = document.getElementById("dvr").value.length;
       function validatePhone() {
            if (phonenum == 10){
                document.getElementById('phoneval').innerhtml="<-- Valid";
            }
            else{
                document.getElementById('phoneval').innerhtml="<-- Not Valid";
            }
        }
    </script>
</body>
</html>

こんにちは、タグがヘッドにあるときに「Uncaught TypeError: null のプロパティ '値' を読み取ることができません」というエラーが発生していましたが、移動したので消えました。ただし、現在はエラーを出力せず、何もしません。助けてください?

書式設定などで申し訳ありません、新しい:/

4

2 に答える 2

4

編集:

動作するわずかに異なる実装: http://jsfiddle.net/SfTR2/ HTML の後に JS がロードされていることを確認するか、window.onload

元の答え:

検証関数内で長さを取得する必要があります。

   function validatePhone() {
        var phonenum = document.getElementById("dvr").value.length; //MOVE IT HERE
        if (phonenum == 10){
            document.getElementById('phoneval').innerHTML="<-- Valid";
        }
        else{
            document.getElementById('phoneval').innerHTML="<-- Not Valid";
        }
    }

以前のように、空の長さをキャッシュしていました。

また、@suが述べたように、innerHTMLを使用する必要があります

于 2012-08-13T04:33:36.330 に答える
0

追加

validatePhone();

スクリプトの最後まで (関数を定義しましたが、呼び出したことはありません)。そして、innerhtml を innerHTML に変更します

于 2012-08-13T04:32:26.800 に答える