1

表示と非表示の両方のラジオボタンがたくさんあるフォームがあります。表示されているラジオ ボタンのみを取得し、いくつかの操作を行う必要があります。以下のコードを試しています。しかし、うまくいきません。誰かがこれで私を助けてくれませんか。

$('#submitbutton').click(function () {
    var returnVal = true;
    $.each($('.input-container[data-validation=required]'), function (idx, group) {
        $(group).next('ul.innererrormessages').remove();
        var unchecked = $(group).find(':radio').filter(':visible');
        if (!unchecked.is(':checked')) {
            var title = unchecked.attr('title');
            $(group).after('<ul class="innererrormessages"><li>' + title + '</li></ul>');
            returnVal = false;
        }
    });
});

1 つのグループには 4 ~ 5 個のラジオ ボタンがあります。グループ内のラジオボタンがチェックされているかどうかを確認する必要があります。したがって、上記のコードが、グループ内のいずれかのラジオ ボタンがチェックされているかどうかを実際にチェックしているかどうかはわかりません。すべてのラジオ ボタンがチェックされた後でも、returnVal が false になるためです。returnVal に警告しようとすると、最初は true になり、その後はすべて false になります。

4

1 に答える 1

5

セレクターを 1 つだけ作成してif :checkedステートメントをスキップできます

var unchecked = $(group).find(':radio:checked:visible');

ifここで、ループを実行するのではなく、eachこれらに対して反復を実行し、操作を行います。

于 2013-11-13T13:52:46.527 に答える