gpt4 book ai didi

javascript - JQuery val 为空或不是对象

转载 作者:行者123 更新时间:2023-11-29 18:33:56 25 4
gpt4 key购买 nike

我有一个 JavaScript 函数(如下),它从文本框插入到数据库中。我收到一个错误:

jquery val is null or not an object in line:

if ($(this).val().indexOf(".") < 0) {

function LoadValues(mode, containers, emptyobj) {
var ele;
var obj = emptyobj;
var idx;
for(i=0;i<=containers.length-1;i++) {
switch(mode) {
case "add":
ele=$("#" + containers[i]).find("input,textarea,select").not("[type=hidden]");
break;
case "update":
ele=$("#" + containers[i]).find("input,textarea,select,hidden").not("[type=hidden][name^=__]");
break;
}
ele.each(function (x) {
if ($(this).attr("type") == "checkbox") {
if ($(this).attr("name") in obj) {
switch (typeof (obj[$(this).attr("name")])) {
case "boolean":
obj[$(this).attr("name")] = ($(this)[0].checked ? true : false);
break;
}
}
}
else {
if ($(this).attr("name") in obj) {
switch (typeof (obj[$(this).attr("name")])) {

case "number":
$(this).val((!$(this).val() ? "0" : $(this).val())); // <-- We have changed this line. It used to look like this: $(this).val(($(this).val()=="" ? "0" : $(this).val()));
if ($(this).val().indexOf(".") < 0) {
obj[$(this).attr("name")] = parseFloat($(this).val());
}
else {
obj[$(this).attr("name")] = parseInt($(this).val());
}
break;
break;
case "string":
obj[$(this).attr("name")] = $(this).val();
break;
case "object":
obj[$(this).attr("name")] = $(this).val();
break;
case "boolean":
obj[$(this).attr("name")] = ($(this).val() == "true" ? true : false);
break;
}
}
}
});
}
return obj;
}

我做错了什么?

最佳答案

if($(this).val().indexOf(".")<0)

你不能在 null 值上调用 indexOf,所以首先你必须检查返回值是否不为空,然后使用 indexOf。

要使其工作,请使用 typeof:

$v=$(this).val();
if(typeof($v)=='string' && $v.indexOf(".")<0)

关于javascript - JQuery val 为空或不是对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5239115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com