javascript无法获得财产'价值'未定义或空引用

时间:2015-09-24 18:22:21

标签: javascript

我有以下代码,java脚本抛出错误"无法获取属性'值'未定义或空引用"。我究竟做错了什么 ?下面是我试图执行以验证一个输入字段的示例代码。

<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>

3 个答案:

答案 0 :(得分:6)

问题在于你是如何试图获得价值的。像...这样的事情。

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 :(得分:1)

您无法像访问过的那样访问元素(document.frm_new_user_request)。您必须使用函数getElementById

document.getElementById("frm_new_user_request")

因此从输入中获取值可能如下所示:

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

您也可以使用一些JavaScript框架,例如jQuery,它简化了DOM(文档对象模型)的操作,并隐藏了各种浏览器之间的差异。

使用jQuery从输入中获取值如下所示:

  • 输入 ID “元素”:var value = $("#element).value
  • 使用“元素”输入:var value = $(".element).value

答案 2 :(得分:0)

你有很多HTML和java脚本错误包括:  标签,使用非UTF-8编码进行表单提交,不需要,...... 您必须在页面中使用document.forms.FORMNAMEdocument.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;
		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>