开发者问题收集

jquery:无法读取未定义的属性

2016-09-15
742

我想读取表单中输入的值。

有时表单包含输入

<form id="myform">
  <input type="text" name="username">
  <input type="hidden" name="userid" value="123">
</form>

有时上述输入不会出现在表单中

<form id="myform">
  <input type="text" name="username">
</form>

我的问题是

我正在读取 userid 值,如果输入不存在则会引发错误。

var form = document.getElementById("myform");
userid = form.userid.value;

由于此错误,大多数脚本功能无法正常工作。

if(pack_id !=undefined && pack_id ==''){
  pack_id=0;    
}

请帮我纠正错误

3个回答
var ext = $('input[name=userid]').length;


if (ext) {
  alert('input is here')

} else {

  alert('not input is here')
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myform">
  <input type="text" name="username">
</form>

检查输入的长度(如 $('input[name=userid]').length )是否存在

guradio
2016-09-15

您可以在获取值之前应用未定义的检查

if(form.userid!=undefined){
userid = form.userid.value;
}
Keshav
2016-09-15

您可以通过 typeof 方法检查 userid 属性是否存在于表单 JavaScript dom 元素对象中。

var form = document.getElementById("myform");
userid="";
if(typeof form.userid !=="undefined" )
{
    userid = form.userid.value;
}
Haresh Vidja
2016-09-15