2015-09-24 282 views
5

以下のコードとJavaスクリプトで「未定義またはnull参照のプロパティ '値'を取得できません」というエラーが発生しています。私は間違って何をしていますか?以下は、1つの入力フィールドを検証するために実行しようとしているサンプルコードです。javascript未定義またはnull参照のプロパティ 'value'を取得できません

<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
    <meta content="text/html;charset=iso-8859-2" http-equiv="content-type" /> 

<script type="text/javascript"> 
function validate_frm_new_user_request() 
{ 
    alert('test'); 
    valid = true; 

    if (document.frm_new_user_request.u_isid.value == '') 
    { 
     alert ("Please enter your valid ISID Information."); 
     document.frm_new_user_request.u_isid.focus(); 
     valid = false; 
    } 
return valid; 
</script> 
</head> 
<body 
<form method="post" action="" name='frm_new_user_request' id="frm_new_user_request" onsubmit="return validate_frm_new_user_request();"> 
<center> 
<table> 
    <tbody> 

     <tr align="left"> 
      <td><Label>ISID<em>*:</Label><input maxlength="15" id="u_userid" name="u_userid" size="20" type="text"/></td> 
      <td> 

<tr> 
      <td align="center" colspan="4"> 
       <input type="image" src="images/button/btn_create_request.gif" border="0" ALT="Create New Request"> 

       </td> 
     </tr> 
    </table> 
</form> 
</body> 
</html> 
+0

'document.frm_new_user_request.u_isid'は' undefined'を返して - undefined' '上.value'は、エラーがスローされます'を呼び出します。それらの中に 'u_isid'の要素がありません。 – tymeJV

+0

申し訳ありませんが、私は入力名を変更して認識しませんでした。このような状況では、どうすればjavascriptの次のステートメントでそれを無視することができますか? –

答えて

4

どのように値を取得しようとしているのですか? ...

if (document.frm_new_user_request.u_isid.value == '') 

は動作しません。最初に値を取得したい要素を見つける必要があります。これは、オブジェクトの参照名と値を取得または割り当てる期間を入力できるサーバー側の言語に似ていません。

document.getElementById('[id goes here]').value; 

となります。注意:JavaScriptが

、大文字と小文字が区別され、私が使用することをお勧めします:

var variablename = document.getElementById('[id goes here]'); 

または

var variablename = document.getElementById('[id goes here]').value; 
1

document.frm_new_user_request)のように要素にアクセスすることはできません。例えば、

var value = document.getElementById("frm_new_user_request").value

はまた、あなたには、いくつかのJavaScriptフレームワークを使用することができますので、入力から値が次のようになります取得

document.getElementById("frm_new_user_request")

:あなたは機能getElementByIdを使用する必要がありますjQueryは、DOM(Document Object Model)での操作を簡素化し、さまざまなブラウザ間の違いを隠します。

  • 入力ID "要素を" を持つ:var value = $("#element).value
  • 入力クラス "要素を" を持つ:var value = $(".element).value

次のようになりjQueryのを使用して、入力から値を取得します

0

をあなたは多くのHTMLとJavaスクリプトの間違いを持っ​​ています タグを、非UTF-を使用してフォーム提出のための8エンコーディング、必要はありません。 の最初の出現形式は、document.forms.FORMNAMEまたはdocument.forms[0]です。修正:

function validate_frm_new_user_request() 
 
{ 
 
    alert('test'); 
 
    var valid = true; 
 

 
    if (document.forms.frm_new_user_request.u_userid.value == "") 
 
    { 
 
     alert ("Please enter your valid ISID Information."); 
 
     document.forms.frm_new_user_request.u_userid.focus(); 
 
     valid = false; 
 
\t \t console.log("FALSE::Empty Value "); 
 
    } 
 
return valid; 
 
}
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"> 
 
<head> 
 
    <title></title> 
 
    <meta content="text/html;charset=UTF-8" http-equiv="content-type" /> 
 

 

 
</head> 
 
<body> 
 
<form method="post" action="" name="frm_new_user_request" id="frm_new_user_request" onsubmit="return validate_frm_new_user_request();"> 
 
<center> 
 
<table> 
 

 
     <tr align="left"> 
 
      <td><Label>ISID<em>*:</Label><input maxlength="15" id="u_userid" name="u_userid" size="20" type="text"/></td> 
 
      </tr> 
 

 
<tr> 
 
      <td align="center" colspan="4"> 
 
       <input type="image" src="btn.png" border="0" ALT="Create New Request"> 
 

 
       </td> 
 
     </tr> 
 
    </table> 
 
</form> 
 
</body> 
 
</html>

関連する問題