Javascript JS:;类型错误:';未定义';“不是对象”;
如您所见,我所要做的就是获取#email字段值的长度。它适用于其他两个字段,但不适用于电子邮件字段。它给出“TypeError:“undefined”不是对象” 有什么原因吗 我在Safari和Google Chrome上都试过了,都给出了相同的错误 HTML:Javascript JS:;类型错误:';未定义';“不是对象”;,javascript,jquery,typeerror,Javascript,Jquery,Typeerror,如您所见,我所要做的就是获取#email字段值的长度。它适用于其他两个字段,但不适用于电子邮件字段。它给出“TypeError:“undefined”不是对象” 有什么原因吗 我在Safari和Google Chrome上都试过了,都给出了相同的错误 HTML: var name = $("input[#name]").value; var email = $("input[#email]").value; var msg = $("input[#msg]").value; var nameL
var name = $("input[#name]").value;
var email = $("input[#email]").value;
var msg = $("input[#msg]").value;
var nameLength = name.length;
var emailLength = email.length;
var msgLength = msg.length;
电子邮件
您试图在jQuery对象上使用DOM属性。如果您有一个jQuery对象,那么您必须使用jQuery方法.val()
,而不是DOM属性.value
,或者必须进入jQuery对象以获取DOM对象,然后才能在其上使用DOM属性
我建议您将其更改为使用jQuery方法获取值:
<div class="form-group">
<label class="col-md-4 control-label" for="email">Email</label>
<div class="col-md-5">
<input id="email" name="email" type="text" placeholder="Enter your email address
here" class="form-control input-md" required="">
</div>
</div>
或者,出于说明目的,这也可以(从jQuery对象中取出DOM对象并使用.value
):
根据您添加到问题中的HTML,您还需要修复选择器。要以
id=“xxx”
为目标,只需使用$(“#xxx”)
。不需要选择器的其他部分,因为ID在整个文档中必须是唯一的。因此,如果您所有的HTML都像您在问题中显示的电子邮件部分一样工作,那么您可以使用:
var name = $("input[#name]")[0].value;
var email = $("input[#email]")[0].value;
var msg = $("input[#msg]")[0].value;
您正试图在jQuery对象上使用DOM属性。如果您有一个jQuery对象,那么您必须使用jQuery方法
.val()
,而不是DOM属性.value
,或者必须进入jQuery对象以获取DOM对象,然后才能在其上使用DOM属性
我建议您将其更改为使用jQuery方法获取值:
<div class="form-group">
<label class="col-md-4 control-label" for="email">Email</label>
<div class="col-md-5">
<input id="email" name="email" type="text" placeholder="Enter your email address
here" class="form-control input-md" required="">
</div>
</div>
或者,出于说明目的,这也可以(从jQuery对象中取出DOM对象并使用.value
):
根据您添加到问题中的HTML,您还需要修复选择器。要以
id=“xxx”
为目标,只需使用$(“#xxx”)
。不需要选择器的其他部分,因为ID在整个文档中必须是唯一的。因此,如果您所有的HTML都像您在问题中显示的电子邮件部分一样工作,那么您可以使用:
var name = $("input[#name]")[0].value;
var email = $("input[#email]")[0].value;
var msg = $("input[#msg]")[0].value;
.value
不是jQuery对象的有效属性。您正在查找.val()
:。请参阅。请向我们显示您试图针对的HTML,以便我们可以建议您的选择器是否正确?。value
不是jQuery对象的有效属性。您正在查找.val()
:。请参阅。请向我们显示您试图针对的HTML,以便我们可以建议您的选择器是否正确?这解决了该问题,但是-它导致了代码中的另一个问题-在另一个变量上给我相同的错误<代码>var emailStructureAtPos=email.indexOf(“@”)代码>@user3666951-您可能在代码的更深处犯了一些其他错误。如果看不到该代码,我们将无能为力。@user3666951-查看调试器,看看当时的电子邮件是什么。也许它超出了范围?@user3666951:你的选择器看起来很奇怪input[#name]
选择一个名为#name
的属性的input
。我认为#
在属性名中甚至都不是有效字符,所以我怀疑这实际上选择了什么。如果要按ID选择,只需使用#name
。我建议您阅读jQuery教程:,。@user3666951-您需要在这里学习一些基本的调试技术。使用console.log()
语句或在调试器中检查变量和jQuery对象的值,找出哪里出了问题。很明显,您正在更改代码,因此我不知道您现在在什么代码上出现了什么错误,因此根据您的最新评论,我无能为力。您的代码中有错误。隔离代码的具体行,检查该行代码周围的变量和表达式的结果,找出哪些不起作用,或者发布更多的细节。这解决了这个问题,但是-它导致了代码中的另一个问题-在另一个变量上给了我相同的错误<代码>var emailStructureAtPos=email.indexOf(“@”)代码>@user3666951-您可能在代码的更深处犯了一些其他错误。如果看不到该代码,我们将无能为力。@user3666951-查看调试器,看看当时的电子邮件是什么。也许它超出了范围?@user3666951:你的选择器看起来很奇怪input[#name]
选择一个名为#name
的属性的input
。我认为#
在属性名中甚至都不是有效字符,所以我怀疑这实际上选择了什么。如果要按ID选择,只需使用#name
。我建议您阅读jQuery教程:,。@user3666951-您需要在这里学习一些基本的调试技术。使用console.log()
语句或在调试器中检查变量和jQuery对象的值,找出哪里出了问题。很明显,您正在更改代码,因此我不知道您现在在什么代码上出现了什么错误,因此根据您的最新评论,我无能为力。您的代码中有错误。隔离代码的具体行,检查该行代码周围的变量和表达式的结果,找出哪些不起作用,或者发布更多细节。