4

フォームの合計入力をフォームの値を持つ合計入力に一致させる非常に単純な検証スクリプトを望んでいます。以下が機能しない理由を説明し、有効な解決策を提案していただけますか?

フィドル: http://jsfiddle.net/d7DDu/

1 つ以上の入力を入力し、[送信] をクリックします。結果として入力された入力の数を確認したい。これまでのところ、それはのみを示しています0

HTML:

<input type="text" name="one">
<input type="text" name="two">
<input type="text" name="three">
<textarea name="four"></textarea>
<button id="btn-submit">Submit</button>
<div id="count"></div>

JS:

$('#btn-submit').bind('click', function() {
    var filledInputs = $(':input[value]').length;
    $('#count').html(filledInputs);
});
4

2 に答える 2

4

[value]は value属性を指しますが、これは valueプロパティとは大きく異なります。

入力するとプロパティが更新されますが、属性は同じままです。elem.value = elem.getAttribute("value")ちなみに、これはフォーム要素を「リセット」できることを意味します。

個人的には、次のようにします。

var filledInputs = $(':input').filter(function() {return !!this.value;}).length;
于 2013-05-19T03:31:28.917 に答える
1

これを試してください:http://jsfiddle.net/justincook/d7DDu/1/

$('#btn-submit').bind('click', function() {
    var x = 0;
    $(':input').each(function(){
        if(this.value.length > 0){ x++; };
    });
    $('#count').html(x);
});
于 2013-05-19T03:32:00.670 に答える