0

ここに私の例があります: http://jsfiddle.net/moolod/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!!!');
    }
});

私がやろうとしているのは、名前が「子」で始まるすべての入力の値が 0 より大きい場合に何かを実行することです。

私の例では、3 つの入力値の長さの 1 つだけが 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

最初に一致した要素で比較を実行しています。この.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 に答える
0

長さを確認しているだけだと仮定して、次のことを試すことができます。

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

    alert(accepted);

});

0 より大きい数値の値を確認する必要がある場合 (質問ではわかりにくい)、値を parseInt して確認することができます。

</p>

于 2012-05-29T15:13:25.980 に答える