0

这是我的例子: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 的代码?

谢谢你的帮助

4

3 回答 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!!!');
    }
});
于 2012-05-29T15:14:38.463 回答
0

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

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

    alert(accepted);

});

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

​</p>

于 2012-05-29T15:13:25.980 回答
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')
}
于 2012-05-29T15:13:29.093 回答