jQuery 条件

问题描述 投票:0回答:3

这是我的例子:http://jsfiddle.net/moolood/jLfxD/

HTML:

<input type="text" id="child1" name="child1" value="" >
<input type="text" id="child2" name="child2" value="">
<input type="text" id="child3" name="child3" value="">

<button id="button">check</button>

JS:

$('#button').click(function() {
    if ($('input[name^="child"]').val().length == 0) {
        alert('one or several fields are empty');
    }
    else {
        alert('good!!!');
    }
});

我想做的是,如果所有名称以“child”开头的输入的值> 0,则执行某些操作。

在我的示例中,我注意到如果 3 个输入值长度之一优于 0,它就会执行某些操作。

如何编写所有3个字段值长度必须大于0的代码?

感谢您的帮助

jquery conditional-statements
3个回答
2
投票

您可以将

.is
与函数一起使用:http://jsfiddle.net/jLfxD/1/

var isEmpty = function() {
    return $(this).val().length === 0;
};

$('#button').click(function() {
    if ($('input[name^="child"]').is(isEmpty)) {
        // if one or more are empty: `.is` returns true
        // as soon as one element satisfies the function
        alert('one or several fields are empty');
    }
    else {
        alert('good!!!');
    }
});

0
投票

假设您只是检查长度,您可以尝试以下操作。

$('#button').click(function() {
    var accepted = true;
    $('input[name^="child"]').each(function(i) {
        accepted= $(this).val().length > 0 && accepted;
    });

    alert(accepted);

});

如果您需要检查大于 0 的数字值(很难通过您的问题判断),您可以尝试解析该值并进行检查。


0
投票

它正在对第一个匹配的元素进行比较。您可以使用

.filter()
函数对每个匹配的元素执行条件。

var children = $('input[name^="child"]').filter(function(index) {
  return $(this).val().length == 0;
});

if (children.length > 0)
{
    alert('one or several fields are empty')
}
© www.soinside.com 2019 - 2024. All rights reserved.