Javascript javascript无法获取未定义或空引用的属性“值”

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/32768320/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-23 14:11:18  来源:igfitidea点击:

javascript Unable to get property 'value' of undefined or null reference

javascript

提问by Lord OfTheRing

I have below code and java script is throwing error "Unable to get property 'value' of undefined or null reference". What am I doing wrong ? below is the sample code I am trying to execute to validate one input field.

我有以下代码,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>

采纳答案by Shockwave

The issue is how you're attempting to get the value. Things like...

问题是您如何尝试获得价值。像...

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

won't work. You need to find the element you want to get the value of first. It's not quite like a server side language where you can type in an object's reference name and a period to get or assign values.

不会工作。您需要先找到要获取其值的元素。它不像服务器端语言,您可以在其中键入对象的引用名称和句点来获取或分配值。

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

will work. Note: JavaScript is case-sensitive

将工作。注意:JavaScript区分大小写

I would recommend using:

我建议使用:

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

or

或者

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

回答by David Ferenczy Rogo?an

You can't access element like you did (document.frm_new_user_request). You have to use the function getElementById:

您无法像 ( document.frm_new_user_request)那样访问元素。您必须使用该功能getElementById

document.getElementById("frm_new_user_request")

document.getElementById("frm_new_user_request")

So getting a value from an input could look like this:

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

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

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

Also you can use some JavaScript framework, e.g. jQuery, which simplifies operations with DOM (Document Object Model) and also hides differences between various browsers from you.

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

Getting a value from an input using jQuery would look like this:

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

  • input with ID"element": var value = $("#element).value
  • input with class"element": var value = $(".element).value
  • 输入ID 为“元素”:var value = $("#element).value
  • 输入“元素”:var value = $(".element).value

回答by Mostafa

you have many HTML and java script mistakes includes: tag, using non UTF-8 encoding for form submission, no need,... You must use document.forms.FORMNAMEor document.forms[0]for first appear form in page Corrected:

您有许多 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>