Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery检查输入是否为空?_Jquery_Html - Fatal编程技术网

使用jQuery检查输入是否为空?

使用jQuery检查输入是否为空?,jquery,html,Jquery,Html,我正在创建一个带有验证的简单表单,希望任何空输入或textarea都添加一个类,但我不知道如何检查空输入 目前,它添加到所有输入中;我只想要空的输入/文本区域。有人能帮忙吗 HTML: .val()不返回数字,而是返回字符串。因此,将$(“输入,文本区域”).val()==0更改为$(“输入,文本区域”).val()===” 编辑 根据评论,在测试一个空字段时要更全面一些 $("input, textarea").each(function(){ var self = $(this),

我正在创建一个带有验证的简单表单,希望任何空输入或textarea都添加一个类,但我不知道如何检查空输入

目前,它添加到所有输入中;我只想要空的输入/文本区域。有人能帮忙吗

HTML:

.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');
     });
 });