检查所有输入字段是否具有值jQuery条件

时间:2013-09-30 15:46:13

标签: javascript jquery

我有几个输入字段,类名为required

我在下面有一个代码来检查我的所有<input>字段是否都有值,如果不为空或为空,它将显示/取消隐藏特定的div

但它似乎对我有用。

此外,默认情况下,#print通过CSS显示为无。

<!-- index.php -->

<input type="text" id="getID" class="required form-control" placeholder="id">
<input type="text" id="getName" class="required form-control" placeholder="name">

<!-- script.js -->

$(document).ready(function() { 
  $('input.required').each(function() { 
    if($(this).val() != "") {
        $("#print").show();
    }
    else {
        $("#print").hide();
    }
  });
});

3 个答案:

答案 0 :(得分:2)

我建议:

$('#print').toggle(!($('input.required').length == $('input.required').filter(function () {
        return this.value;
    }).length));

Simplified JS Fiddle demo

显然,这应该在submit上运行,假设您只想在提交之前将#print元素显示为验证。

参考文献:

答案 1 :(得分:1)

正如我在上面的评论中所述,在用户有机会输入任何内容之前,您正在检查页面加载时的值。如果您的页面上有一个按钮,请将事件绑定到将在正确的时间触发该功能的事件。

有点像jFiddle

的东西

<强>的index.php

<input type="text" id="getID" class="required form-control" placeholder="id">
<input type="text" id="getName" class="required form-control" placeholder="name">
<div id="button">Submit</div>
<div id="print">You're missing something D:!</div>

<强>的script.js

$('#button').on('click', function() { 
    $('#print').hide();
    var error=false;
    $('input.required').each(function() { 
        if($(this).val() == "") {
            error=true;
        }
    });
    if(error) {
        $('#print').show();   
    }
});

答案 2 :(得分:0)

尝试

$(document).ready(function () {
    //the default state
    var valid = true;
    $('input.required').each(function () {
        //if the value of the current input is blank then the set is invalid and we can stop the iteration now
        if ($.trim(this.value) == '') {
            valid = false;
            return false;
        }
    });
    //set the visibility of the element based on the value of valid state
    $("#print").toggle(!valid);
});