Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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
Javascript 检查必填字段是否为空_Javascript_Jquery_Validation - Fatal编程技术网

Javascript 检查必填字段是否为空

Javascript 检查必填字段是否为空,javascript,jquery,validation,Javascript,Jquery,Validation,我想检查必填字段是否为空。 我使用了下面的代码 $(":input").each(function() { if($(this).data('label')=='required') { if($(this).val() === "") alert("Empty Fields!!"); } }); 但它不止一次发出警报。 JSFiddle: 为什么不直接在HTML中使用required属性: <input id="name"ty

我想检查必填字段是否为空。 我使用了下面的代码

$(":input").each(function() {
    if($(this).data('label')=='required')
     {
        if($(this).val() === "")
        alert("Empty Fields!!");
     }
});
但它不止一次发出警报。 JSFiddle:

为什么不直接在HTML中使用
required
属性:

<input id="name"type="text" data-label="required" required/>

您需要使用标志

$(document).ready(function () {

    $("#submit").click(function (e) {
        e.preventDefault()
        AlertSave();
    });
});

function AlertSave() {
    //use the flag to set the valid status in the loop
    var valid = true;
    //iterate over only the required elements
    $(':input[data-label="required"]').each(function () {
        if ($(this).val() === "") {
            valid = false;
            return false;
        }
    });

    if (valid) {
        //do your save
    } else {
        alert("Empty Fields!!");
    }
}
演示:

正如您使用的
$(“:input”)。每个()
都将遍历所有字段。但您只能使用该标志显示一次警报

function AlertSave() {
var alertShown=false;   
    $(":input").each(function() {
        if($(this).data('label')=='required')
                        {
   if($(this).val() === "" && !alertShown)
   {
       alertShown=true;
        alert("Empty Fields!!");
   }
  }
});
    }

通过使用
required
属性(建议使用),这将返回没有
值的所有必需输入字段:

var inputsWithMissingValues = $('input[required]').filter(function(i, input) {
  return !input.value.length;
});

因此,如果其长度大于零,则表示必填字段中缺少值。

效果良好。还有一件事,如果我有数千个输入字段,其中只有5个是必填字段。在这种情况下,输入是不可能的。在里面吗?那么我该如何实现它呢?@Arun P johny为什么不呢?如果您想要更好的性能,可以尝试以下方法