找到任何非空的输入

时间:2015-09-28 20:24:54

标签: jquery

我有一个表单,其中有一些隐藏的字段集,当单击一个按钮时可以看到它们。如果用户单击其中一个按钮以使字段集可见并填写任何字段,则提交表单而不填写所有必填字段或不符合任何验证,它将返回每个字段下方的错误消息

我遇到的问题是,当用户返回到表单时,已打开并完全或部分填充的所有字段集都将恢复为默认隐藏状态。

我希望这些字段集中的任何一个都保持打开状态,以便用户可以看到他们做错了什么或者没有填写。

我试过以下......

if ($('#fieldset2').find(':input').not(':button').val() != '') {
    $('#fieldset2').css({'display':'block'});
} else {
    $('#fieldset2').css({'display':'none'});
}

这只有在填写了第一个字段时才有效。我需要它查看所有字段并检查是否有任何字段为空。 (不包括类型'按钮')。

3 个答案:

答案 0 :(得分:2)

使用filter

$("input:not(:button)").filter(function () {
  return $(this).val().trim().length != 0;
});

我觉得你多次使用#fieldset2,这是不对的。 id不应该重复。

答案 1 :(得分:0)

使用$ .filter过滤掉具有值的项目。如果该计数(长度)不等于0,则显示该块。

http://api.jquery.com/filter/

http://jsfiddle.net/b7uxfL4s/

$(document).ready(function () {
    if ($('#parentset2 input:not(:button)').filter(function () {
        return this.value != "";
    }).length != 0) {
        $('#fieldset2').css({
            'display': 'block'
        });
    } else {
        $('#fieldset2').css({
            'display': 'none'
        });
    }
});

答案 2 :(得分:0)

这是否解决了您的问题?

$(":输入&#34)不(":空&#34)。