2

ラジオボタンが選択された瞬間について実際に尋ねる投稿は見つかりませんでした..誰かがボタンを選択した場合にのみ、値をチェックしていません。

ここに私が持っているものがあります:

function turnSubmitBlue() {
$('.formSubmit').css('backgroundColor','#08aae4');
}

$('input:checkbox').each.change(function(){
if ($(this).attr('checked')) {
checkForThreeRadioBtns()
 };
});

function checkForThreeRadioBtns() {
        if (($('input[name=group1]:checked')) && ($('input[name=group2]:checked')) && ($('input[name=group3]:checked'))) {
            turnSubmitBlue();
            }
}

私の思考プロセスは、ページの読み込み時に何も選択されておらず、送信ボタンの色の変化によって送信することを示す前に、各グループから 1 つが選択されるまで待つ必要があるというものでした。(各グループから 1 つのラジオを選択する前に送信を押すと、検証が実行されます)。

3 つのボタンが選択されたら、関数を実行して送信を青色に変更し、他のコンテンツを表示します (既に正常に動作しています)。送信をクリックすると、送信ボタンが灰色になり、結果が表示されます。

この時点では、常に 3 つが選択されているため、変更が発生した瞬間に (別のラジオ ボタンをクリックして) 関数を実行し、送信ボタンを変更する必要があります。

私の関数 checkForThreeRadioBtns() は、各ラジオの 1 つが 3 つのグループすべてで選択されていることを確認し、選択されている場合は関数をトリガーして turnSubmitBlue() を実行することになっています。

ラジオボタンが変更された瞬間をjqueryにチェックさせようとしましたが、今のところうまくいきません。

4

2 に答える 2

2

以下のようにしてみてください、

$('input:checkbox').change(function(){
   if (this.checked) {
     checkForThreeRadioBtns();
   };
});

また、以下のように if 条件を変更してみてください。

if ($('input[name=group1]:checked').length && 
        $('input[name=group2]:checked').length && 
        $('input[name=group3]:checked').length)

完全なコード:

function turnSubmitBlue() {
    $('.formSubmit').css('backgroundColor','#08aae4');
}

$('input:checkbox').change(function(){
   if (this.checked) {
     checkForThreeRadioBtns();
   };
});

function checkForThreeRadioBtns() {
    if ($('input[name=group1]:checked').length && 
          $('input[name=group2]:checked').length && 
            $('input[name=group3]:checked').length) {
        turnSubmitBlue();
    }
}
于 2012-05-21T15:58:43.133 に答える
0
$('input[type=checkbox]').on('change', function(){
   if (this.checked) {
     checkForThreeRadioBtns()
   };
});


function checkForThreeRadioBtns() {
   if ($('input[name=group1]').is(':checked') && 
       $('input[name=group2]').is(':checked') && 
       $('input[name=group3]').is(':checked')) {
            turnSubmitBlue();
   }
}
于 2012-05-21T16:02:12.813 に答える