2015-09-24 16 views
5

Tôi có mã dưới đây và tập lệnh java đang ném lỗi "Không thể nhận giá trị thuộc tính' của tham chiếu không xác định hoặc tham chiếu". Tôi đang làm gì sai? bên dưới là mã mẫu mà tôi đang cố thực hiện để xác thực một trường nhập.javascript Không thể nhận giá trị thuộc tính 'không xác định hoặc tham chiếu null

<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' đang trở lại' undefined' - gọi '.value' trên' undefined' sẽ ném lỗi. Tôi không thấy bất kỳ yếu tố nào với 'u_isid' trong đó – tymeJV

+0

xin lỗi tôi đã đổi tên tên và không nhận ra. Trong tình huống như thế nào tôi có thể bỏ qua nó trong di chuyển trên với tuyên bố tiếp theo trong javascript? –

Trả lời

4

Vấn đề là cách bạn đang cố gắng lấy giá trị. Những điều như ...

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

sẽ không hoạt động. Bạn cần tìm phần tử bạn muốn nhận giá trị đầu tiên. Nó không hoàn toàn giống như một ngôn ngữ phía máy chủ nơi bạn có thể nhập vào tên tham chiếu của đối tượng và một khoảng thời gian để nhận hoặc gán các giá trị.

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

sẽ hoạt động. Lưu ý: JavaScript là case-sensitive

tôi sẽ khuyên bạn sử dụng:

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

hoặc

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

Bạn không thể truy cập yếu tố như bạn đã làm (document.frm_new_user_request). Bạn phải sử dụng chức năng getElementById:

document.getElementById("frm_new_user_request")

Vì vậy, nhận được một giá trị từ một đầu vào có thể trông như thế này:

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

Ngoài ra bạn có thể sử dụng một số khuôn khổ JavaScript, ví dụ jQuery, đơn giản hóa hoạt động với DOM (Mô hình đối tượng tài liệu) và cũng ẩn sự khác biệt giữa các trình duyệt khác nhau của bạn.

Bắt một giá trị từ một đầu vào sử dụng jQuery sẽ trông như thế này:

  • đầu vào với ID "yếu tố": var value = $("#element).value
  • đầu vào với lớp "yếu tố": var value = $(".element).value
0

bạn có nhiều HTML và script java sai lầm bao gồm: thẻ, sử dụng phi UTF- 8 mã hóa để gửi biểu mẫu, không cần, ... Bạn phải sử dụng document.forms.FORMNAME hoặc document.forms[0] cho biểu mẫu xuất hiện đầu tiên trong trang Đã sửa:

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>

Các vấn đề liên quan