jquery - 选择单选按钮后运行函数

标签 jquery radio-button

我还没有找到真正询问单选按钮被选择时刻的帖子。我不是在检查值,只是在有人选择任何按钮时检查。

这是我所拥有的:

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

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

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

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

我的函数 checkForThreeRadioBtns() 应该确保在所有三个组中选择每个 radio 之一,如果是这样,则触发该函数运行turnSubmitBlue()。

我一直在尝试让 jquery 检查单选按钮更改的时刻,但到目前为止还没有成功。

最佳答案

尝试像下面这样,

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

关于jquery - 选择单选按钮后运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10688541/

相关文章:

jquery - 使用 Form 定位 Iframe 会导致打开新窗口

java - 动态添加时单选按钮文本颜色问题

forms - 在 Marionette js 中处理单选按钮表单

javascript - 单击图像或单选按钮时显示和隐藏 div

javascript - jsf 输入文本中没有空格要求

javascript - Cordova 防止 webview 拖拽字段焦点?

javascript - Django 模板内联 jQuery 不工作

javascript - 使用 jQuery 获取嵌套列表中的上一个直接 li 项目

grails - 如何正确使用radioGroup?

flutter - 在ListView.builder() flutter中动态创建单选按钮Group