Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获类型错误:无法读取属性';val';空的_Javascript_Jquery - Fatal编程技术网

Javascript 未捕获类型错误:无法读取属性';val';空的

Javascript 未捕获类型错误:无法读取属性';val';空的,javascript,jquery,Javascript,Jquery,我是jquery新手,当我尝试执行以下操作时,遇到错误“UncaughtTypeError:无法读取null的属性'val'。 我试图调用一个函数,通过调用函数的id来检查文本框的值是否为null,并将其赋值为零。我知道我可以直接赋值,但是它们太多了,所以我觉得调用函数是一种方法 以下是我的代码: function Fn_Save { function Fn_NullConvertor(input1) { if (document.getElementById("in

我是jquery新手,当我尝试执行以下操作时,遇到错误“UncaughtTypeError:无法读取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())

        }

    }
}
谢谢你的时间,我真的很感激

有5个问题:

  • Fn\u保存
    丢失
    ()
  • 没有id为
    input1
    id的元素,或者您的代码在DOM准备就绪之前执行
  • HTMLElement
    没有
    .val
    属性。它是
    .value
  • 您正在使用
    ==
    进行分配
  • 根据我的想法,你在追求什么
这:

应该是:

    function Fn_NullConvertor(input1) {
        if (document.getElementById(input1).value == "") {
            document.getElementById(input1).value = "1";
        }
    }        

该错误意味着找不到id为“input1”的html元素。您应该检查页面上是否有类似于
的内容。

如果
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");

它应该是
.value
,因为您调用纯javascript。
如果使用jquery,它应该是
.val()

,一般来说,这个错误的意思就是它所说的:您正在获取null的某些属性或函数。显然,它找不到ID为“input1”的元素。您确定没有将参数和字符串值
input1
“input1”
混淆吗?我必须说,这里有太多错误,您真的应该学习如何查看javascript错误控制台或调试控制台,并跟踪那里报告的错误。您的代码甚至不能正确解析,更不用说运行了。您肯定会在错误控制台中看到错误。我们真的不应该告诉您浏览器调试工具中已经为您列出的错误在哪里。
Fn_NullConvertor("txtNum_Tracks");