检查输入框数组是否为空

Checking an array of input boxes are not empty

最好在 jQuery 中执行此操作,用于检查输入框是否为空的简单验证。但是,这些是输入框的动态数组。该代码应该有助于理解:

<input type="text" id="qtn" name="question" />
<input type="text" name="answer[]" />
<button type="button" id="btn"> Save </button>

我理解问题输入的通常想法是这样的:

$('#btn').click(function () {
    var question = $.trim($('#qtn').val());

    // Check if empty of not
    if (question === '') {
        alert('Text-field is empty.');
        return false;
    } else {
        $('#form').submit();
    }
});

这对于 answer[] 输入类型如何工作,因为会有动态数量的答案,并且想要确保无论用户选择了多少,所有这些框都被填满了。

谢谢!

您可以使用 filter() 方法查找 form 中的任何空文本框。另请注意,您应该在提交 form 本身时执行此检查,而不是单击按钮,因为有人可以在焦点位于文本框上时通过按 return 键来提交表单。试试这个:

$('form').submit(function(e) {
    var $emptyFields = $(this).find(':text').filter(function() {
        return this.value.trim() == '';
    });

    if (!$emptyFields.length) {
        e.preventDefault(); // stop the form submission
        alert('Please fill out all fields');
    } else {
        $form.submit();
    }
}); 

这样试试

$('#btn').click(function () {
   var checkValidate = false;
   $('input[type=text]').each(function() {
          if(!$.trim($(this).val())){
            alert('Some fields are empty');
            checkValidate = true;
            return false;
          }
   });
   if(!checkValidate) {
      $('#form').submit();
   }
});

Demo

$('#btn').click(function () {
    var getTargetText = $(":text").filter(function() { return this.value==""; });
    if($(getTargetText[0]).val()=="") {
        alert("Please Enter this Field");
        $(getTargetText[0]).focus();
        return false;
    }
});

是的,正如 Rory McCrossan 的回答,过滤器是一个选项。我只是修改为目标实际文本框为空。