未捕获的类型错误:无法读取 null 的属性“val”
2014-06-01
7470
我是 jquery 新手,当我尝试执行以下操作时,出现错误“Uncaught TypeError:无法读取 null 的属性‘val’”。 我试图调用一个函数,该函数将通过调用函数的 id 检查我的文本框的值是否为 null 并将其赋值为零。我知道我可以直接赋值,但是它们太多了,我觉得调用函数是可行的方法。
这是我的代码:
function Fn_Save {
function Fn_NullConvertor(input1) {
if (document.getElementById("input1").val == "") {
document.getElementById("input1").val == 1;
}
}
if (confirm("Save?")) {
Fn_NullConvertor(txtNum_Tracks);
var params = {
Num_Tracks: $.trim($("#txtNum_Tracks").val())
}
}
}
感谢您的时间,我真的很感激!
3个回答
有 5 个问题:
-
Fn_Save
缺少()
-
没有带有
input1
id 的元素,或者您的代码在 DOM 准备就绪之前就执行了。 -
HTMLElement
没有.val
属性。它是.value
-
您正在使用
==
进行赋值 - 根据我的想法,您正在寻找,然后
这个:
function Fn_NullConvertor(input1) {
if (document.getElementById("input1").val == "") {
document.getElementById("input1").val == 1;
}
}
应该是:
function Fn_NullConvertor(input1) {
if (document.getElementById(input1).value == "") {
document.getElementById(input1).value = "1";
}
}
Amit Joki
2014-06-01
如果
input1
是元素 ID 的参数,则不应在其周围使用引号。另请注意:
输入元素没有
val
属性。该属性称为“值”。
要分配值,您需要使用
=
运算符,而不是
==
。
function Fn_NullConvertor(input1) {
var el = document.getElementById(input1);
if (!el) {
throw Error("No element with the ID " + input1 + " was found.");
}
if (!el.value) {
el.value = 1;
}
}
此外,当您将 ID 传递到函数中时,ID 应该 用引号括起来:
Fn_NullConvertor("txtNum_Tracks");
JLRishe
2014-06-01
该错误意味着无法找到 id 为“input1”的 html 元素。您应该检查页面上是否有类似
<input id="input1" type="text">
的内容。
user3696176
2014-06-01