2017-12-14 8 views
0

form.htmlJavaScriptコードで「未定義」値をデバッグするにはどうすればよいですか?

function validate() { 
 
    var name = document.Myform.name.value; 
 
    document.write(name); 
 
}
<html> 
 

 
<head> 
 
    <script src="validations.js"></script> 
 
</head> 
 

 
<body> 
 
    <form name="Myform" onsubmit="return validate()"> 
 
    Enter name: <input type="text" name="name" /><br/><br/> 
 
    <input type="submit" /> 
 
    </form> 
 
</body> 
 

 
</html>

出力:それは未定義表示される入力ボックスに自分の名前を入力した後 を未定義。

+0

メイク使用は==「名前」 –

+0

名=「名前」、名前の代わりに...名前のinsted。それぞれには独自の機能があります。私は、要素を参照することはidによってよりうまくいくことに同意します。ただし、(!)では、両方のソリューションが機能します(IDと名前がページ上で一意である限り)。 –

答えて

1

問題は、あなたの入力にあるように、この

<input type="text" id="txtname"/><br><br> 

とJavaScriptのようにする必要があります。 name == "name"をname = "name"に変更する必要があります。その後、検証関数をgetElementsByNameに変更します。以下のコードを参照してください:〜通常イベントハンドラのこのタイプの場合のように

<html> 
 
<head> 
 
<script> 
 
\t function validate(){ \t 
 
\t \t var name=document.getElementsByName('name')[0].value; 
 
\t \t document.write(name); 
 
\t } 
 
</script> 
 
</head> 
 
<body> 
 
<form name="Myform" onsubmit="return validate()"> 
 
Enter name: <input type="text" name="name"><br><br> 
 
<input type="submit" /> 
 
</form> 
 
</body> 
 
</html>

0

name=="name"を修正するだけです。 HTMLでは、私たちは、属性が/

function validate() { 
 
    var name = document.Myform.name.value; 
 
    document.write(name); 
 
}
<html> 
 

 
<head> 
 
    <script src="validations.js"></script> 
 
</head> 
 

 
<body> 
 
    <form name="Myform" onsubmit="return validate()"> 
 
    Enter name: <input type="text" name="name" /><br><br> 
 
    <input type="submit" /> 
 
    </form> 
 
</body> 
 

 
</html>

0

nameの使用を作るいけない値に割り当てるために=を使用して、長い時間から、彼らはid属性を利用することが示唆され、W3C標準のそれ古い方法を属性。

あなたのコードは、

var name=document.getElementById("txtname").value; 
+1

名前がIDとは異なる意味を持つ – JoostS

+1

@JoostS - あなたに同意しますが、このIDは最適です –

0

validate関数は何も返しません〜、それは代わりに、単純に名前を書きますと、ということです希望の結果? IDの

<html> 
    <head> 
     <title>form validation</title> 
     <script src="validations.js"></script> 
     <script> 
      function validate(e){ 
       e.preventDefault(); 
       var name=e.target.querySelector('input[ name="name" ]').value; 
       document.write(name); 
       return true; 
      } 
     </script> 
    </head> 
    <body> 
     <form name="Myform" onsubmit="return validate(event)"> 
      Enter name: <input type="text" name="name"/><br><br> 
      <input type="submit" /> 
     </form> 
    </body> 
</html> 
関連する問題