0

jQuery を使用してフォームの検証を行おうとしています。すべてのコントロールが入力済みか選択済みかを検証できるメソッドが必要です。私のアプリケーションがサポートする CheckBoxLists は、jQuery が各チェックボックスを個別に処理するのが好きなように見えるので、苦労していますが、実際に行う必要があるのは、div 内のすべての CBL を評価し、それぞれに少なくとも 1 つの個別のボックスがチェックされているかどうかを確認することです。

DIV と個々の CBL の ID に適切な名前を付けることができます (CBL1、CBL2 なども同様です)。私は本当にすべてを解析する方法が必要です

4

4 に答える 4

2

ASP が CBL を次のように解析すると仮定します。

<h2>Interests</h2>
<ul id='CBL1' class='checkboxlist'>
    <li><input type='checkbox' name='interest' value='javascript'> JavaScript</li>
    <li><input type='checkbox' name='interest' value='jquery'> jQuery</li>
</ul>
<h2>Hobbies</h2>
<ul id='CBL2' class='checkboxlist'>
    <!-- subsequent data -->

次のようにしてこれを確認できます。

function validateCBLs() {
    var $lists = $('ul.checkboxlist');
    $lists.each(function(i, item) {
        if ($(item).find(':checked').length < 1) {
            //Show user an error, etc
            alert('Please, check at least one item from ' + $(item).attr('id'));
        }
    });
}

JSFiddle:こちら

于 2010-10-25T21:40:08.213 に答える
0

これを試して:

$('.checkboxlist').filter(function(){
            return $(this).find(':checked').size()>0;
        }).size()

これにより、少なくとも 1 つのチェックボックスが選択されている CBL の数がわかります。

于 2010-10-25T22:44:30.973 に答える
0

各リストで少なくとも 1 つのチェックボックスを選択する必要があります。これが機能するかどうか疑問に思います (すべての CBL に「CBL」で始まる ID を持たせる (例: CBL1、CBL2、...)):

var valid = true;
$('[id^="CBL"]').each(function(i,v){
    valid = valid && ($(this).find(':checkbox:checked').size() >= 1);
});
alert(valid);

JSFiddle

于 2010-10-25T21:19:44.190 に答える
0
function hasBoxesChecked(id) {
  return $(":checkbox:checked", document.getElementById(id)).length > 0;
}

ライブデモはこちら

于 2010-10-25T21:36:31.823 に答える