Javascript 未捕获类型错误:对象[对象对象]没有方法';val';

Javascript 未捕获类型错误:对象[对象对象]没有方法';val';,javascript,jquery,validation,Javascript,Jquery,Validation,我正在尝试实现jQuery验证。这种情况是,如果字段为空,它将给出所需的消息错误。如果不为空且输入无效,它将为每个字段提供特定的错误消息。使用我当前的代码,我遇到以下错误: 未捕获的TypeError:对象[Object Object]没有方法“val” 解决这个问题有什么提示吗?这是小提琴: 编辑(查看小提琴后): 在声明变量时,似乎没有使用var。我编辑了小提琴,将name=$(“#name”)更改为var name=$(“#name”)。变量名似乎与其他(全局)变量冲突。已编辑(查看FID

我正在尝试实现jQuery验证。这种情况是,如果字段为空,它将给出所需的消息错误。如果不为空且输入无效,它将为每个字段提供特定的错误消息。使用我当前的代码,我遇到以下错误:

未捕获的TypeError:对象[Object Object]没有方法“val”

解决这个问题有什么提示吗?这是小提琴:

编辑(查看小提琴后):

在声明变量时,似乎没有使用
var
。我编辑了小提琴,将
name=$(“#name”)
更改为
var name=$(“#name”)
。变量名似乎与其他(全局)变量冲突。

已编辑(查看FIDLE后):


在声明变量时,似乎没有使用
var
。我编辑了小提琴,将
name=$(“#name”)
更改为
var name=$(“#name”)
。变量名似乎与其他(全局)变量冲突。

您需要正确声明变量;它们将进入全局名称空间。看

e、 g


你需要正确地声明你的变量;它们将进入全局名称空间。看

e、 g


JSFIDLE中的代码不会引发任何异常>单击提交。检查chrome浏览器中的控制台。名称可能是
DOM
对象。在firefox中尝试
console.log(name)
查看其中的内容。JSFIDLE中的代码不会引发任何异常>单击提交。检查chrome浏览器中的控制台。名称可能是
DOM
对象。在firefox中尝试
console.log(name)
查看itOops中的内容,armen击败了我-但公平地说,他编辑了忍者d;)如果(!/^[0-9]+$/.test(mobile.val())和&mobile.val()!=emptyerror和&mobile.val().length!=10){mobile.addClass(“needsfilled”);mobile.val(mobileerror);}你为什么能检查我是否在mobile字段中输入aaaaaa,它不会抛出任何错误。在必须的地方。哦,armen打败了我,但公平地说,他编辑了忍者的d;)如果(!/^[0-9]+$/.test(mobile.val())和&mobile.val()!=emptyerror和&mobile.val().length!=10){mobile.addClass(“needsfilled”);mobile.val(mobileerror);}你为什么可以检查我是否在mobile字段中输入aaaa,它不会抛出任何错误。如果(!/^[0-9]+$/.test(mobile.val())和&mobile.val())!=emptyerror&&mobile.val().length!=10{mobile.addClass(“needsfilled”);mobile.val(mobileerror);}@mkat您所有的变量都应该使用
var
why可以检查我是否在mobile字段中输入aaaaaa,它不会抛出任何错误。它必须在哪里。问题在于测试:
if(!/^[0-9]+$/.test(mobile.val())和&mobile.val()!=emptyerror和&mobile.val().length!=10)
应该是
if(!/^[0-9]+$/.test(mobile.val())和&mobile.val()!=emptyerror和&mobile.val().length!=10)
是的,我得到了thanx buddy.if(!/^[0-9]+$/.test(mobile.val())和&mobile.val()!=emptyerror和mobile.val()长度!=10){mobile.addClass(“needsfilled”);mobile.val(mobileerror);}@mkat您所有的变量都应该使用
var
hy可以检查我是否在mobile字段中输入aaaa,它不会抛出任何错误。它必须在哪里。问题在于测试:
if(!/^[0-9]+$/.test(mobile.val())和&mobile.val()!=emptyerror&&mobile.val().length!=10)
应该是
如果(!/^[0-9]+$/.test(mobile.val())和&mobile.val()!=emptyerror)| mobile.val().length!=10)
是的,我知道了。
if (!/^[a-zA-Z]+$/.test(name.val()) && name.val() != emptyerror) {
    name.addClass("needsfilled");
    name.val(nameerror);
}
var name = $("#name");