我是jquery的新手,我收到了错误" Uncaught TypeError:无法读取属性' val' of null"当我尝试做以下事情。 我试图通过调用函数的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())
}
}
}
感谢您的时间,我真的很感激!
答案 0 :(得分:1)
有5个问题:
Fn_Save
缺少()
input1
id的元素,或者您的代码在DOM准备好之前就已执行。.val
没有HTMLElement
属性。它是.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";
}
}
答案 1 :(得分:1)
如果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");
答案 2 :(得分:0)
该错误表示无法找到id为“input1”的html元素。您应该检查页面上是否有类似<input id="input1" type="text">
的内容。
答案 3 :(得分:0)
它应该是.value
因为您调用纯javascript。
如果使用jquery,它应该是.val()