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();
            }
}

我的想法是,在页面加载时,没有选择任何内容,我必须等到每个组中的一个被选中,然后通过提交按钮上的颜色更改来指示提交。(如果他们在从每个组中选择一个收音机之前点击提交,我确实会运行验证)。

一旦选择了三个按钮,运行函数以更改提交蓝色,显示其他内容(已经正常工作)。一旦他们点击提交,提交按钮就会变成灰色并显示结果。

此时,将始终选择三个,因此我只需要在发生更改时(通过单击不同的单选按钮)运行一个函数来更改提交按钮。

我的函数 checkForThreeRadioBtns() 应该确保在所有三个组中选择每个无线电中的一个,如果是,则触发函数运行 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 回答