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;
正如您所看到的,我所要做的就是获取#email字段值的长度。它适用于其他两个字段,但不适用于电子邮件字段。它给出了“TypeError:'undefined'不是一个对象”。
有什么理由?
我在Safari和谷歌浏览器中都试过,两者都给出了同样的错误。
HTML:
<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>
答案 0 :(得分:3)
您正在尝试在jQuery对象上使用DOM属性。如果您有一个jQuery对象,那么您必须使用jQuery方法.val()
,而不是DOM属性.value
,或者您必须进入jQuery对象以获取DOM对象,然后您可以使用DOM属性。
我建议您将其更改为使用jQuery方法获取值:
var name = $("input[#name]").val();
var email = $("input[#email]").val();
var msg = $("input[#msg]").val();
或者,为了便于说明,这也可以(从jQuery对象中获取DOM对象并使用.value
):
var name = $("input[#name]")[0].value;
var email = $("input[#email]")[0].value;
var msg = $("input[#msg]")[0].value;
根据您已添加到问题中的HTML,您还需要修复选择器。要定位id="xxx"
,您只需使用$("#xxx")
即可。不需要选择器的其他部分,因为在整个文档中ID必须是唯一的。因此,如果您的所有HTML都与您在问题中显示的电子邮件部分相同,那么您可以使用此功能:
var name = $("#name").val();
var email = $("#email").val();
var msg = $("#msg").val();