使用jQuery检查输入是否为空?
我正在创建一个带有验证的简单表单,希望任何空输入或textarea都添加一个类,但我不知道如何检查空输入 目前,它添加到所有输入中;我只想要空的输入/文本区域。有人能帮忙吗 HTML:使用jQuery检查输入是否为空?,jquery,html,Jquery,Html,我正在创建一个带有验证的简单表单,希望任何空输入或textarea都添加一个类,但我不知道如何检查空输入 目前,它添加到所有输入中;我只想要空的输入/文本区域。有人能帮忙吗 HTML: .val()不返回数字,而是返回字符串。因此,将$(“输入,文本区域”).val()==0更改为$(“输入,文本区域”).val()===” 编辑 根据评论,在测试一个空字段时要更全面一些 $("input, textarea").each(function(){ var self = $(this),
.val()
不返回数字,而是返回字符串。因此,将$(“输入,文本区域”).val()==0
更改为$(“输入,文本区域”).val()===”
编辑
根据评论,在测试一个空字段时要更全面一些
$("input, textarea").each(function(){
var self = $(this),
thisVal = self.val();
if($.trim(thisVal) === "" || thisVal.length === 0)
{
self.addClass("error");
}
});
如果你真的想在事后提交表格(采用接受的答案)。试试这个:
$("#submit_form").click(function () {
$submit = "yes";
$(":input").not("[type=button]").removeClass('error').each(function () {
if ($.trim($(this).val()).length == 0) {
$(this).addClass('error');
$submit = "no";
}
});
if ($submit == "yes") {
$("#contactform").submit();
}
});
这将通过每一个,并验证它有内容,如果它不允许你提交表格。否则将提交表格。我还将您的提交按钮改为一个按钮。它来自:
<input type="submit">
要使用按钮提交,请执行以下操作:
<input type="button" id="submit_form" value="Submit" />
试试这个:
$("#submit_form").click(function () {
$submit = "yes";
$(":input").not("[type=button]").removeClass('error').each(function () {
if ($.trim($(this).val()).length == 0) {
$(this).addClass('error');
$submit = "no";
}
});
if ($submit == "yes") {
$("#contactform").submit();
}
});
$("#contactform").submit(function (e) {
e.preventDefault();
$(":input").not("[type=submit]").removeClass('error').each(function () {
if ($.trim($(this).val()).length == 0) $(this).addClass('error');
});
});
(请注意,默认设置是存在的,因此表单不会提交,您可以看到它工作)为什么您认为
.val()
会为空输入返回0
?如果val=0,则表示输入为空?@MattBall,JavaScript真实性再次出现!我会用trim()
加上length
测试来交换相等值的可能重复项。以我自己的经验来看,这似乎是网民抱怨最少的结果。这正是我想要的!但是它是单独做的,我如何让它同时做所有的事情?你为什么要这样做?如何设置您希望将error类应用于缺少的输入。我知道您接受了答案,但您也可以在返回false时标记变量,然后添加一个,并在消息中应用一条消息,说明所有字段均未填写,如果确实是,则不必突出显示特定的输入字段我很感激你的兴趣,但我找到了我的答案。如果您仍然想提供帮助,您可以解释为什么填写输入时它不会提交?谢谢,这正是我需要的!
$("#contactform").submit(function (e) {
e.preventDefault();
$(":input").not("[type=submit]").removeClass('error').each(function () {
if ($.trim($(this).val()).length == 0) $(this).addClass('error');
});
});