【问题标题】:change background-color of radio buttons if not checked如果未选中,则更改单选按钮的背景颜色
【发布时间】:2014-05-17 04:59:40
【问题描述】:

一旦用户在未选中所有单选按钮的情况下提交,未答复按钮的背景颜色应与选中按钮不同。我尝试实现这一点的方式是:

  1. 创建一个空数组 - “存储”
  2. 遍历每个单选按钮,如果项目已被选中,则在数组“store”中按数字 1(真),否则按 0(假)。
  3. 然后我想遍历这个数组并为那些在“商店”中值为零的项目添加一个类。

    $(document).ready(function(){
        $('#form').submit(function(){
            var isValid = true; 
            var store = new Array();
            $("input:radio").each(function() {
                if($(this).prop('checked',true)){
                    store.push(1);}
                else{
                    store.push(0);
                    isValid = false;}           
            }); //.each
                if(!isValid){
                    for(var i=0;i < store.length;i++){
                        if(store[i]===0){
                            $('input[name=item' + i +']').addClass("not_answered");}
                        }//end of for-loop
                    return false;}
                else{
                    return true;}
    
        }); //submit
    });//document ready
    

我做错了什么?

我的小提琴:

FIDDLE

【问题讨论】:

  • 这是一个有趣的测试,将类添加到元素中,看看单选按钮是否可以这样设置 -> jsfiddle.net/adeneo/P7UgE/1
  • 一旦你运行了测试,并且发现你不能将背景颜色应用到这样的单选输入上,要么将每个都包装在 div 中,要么为单选输入创建标签并将类应用于它们。
  • 错误 #1 在你的小提琴中。该表单的输入 ID 为 id="#form"。应该是id="form"
  • 我完全忘了检查收音机是否有这种风格。感谢您指出这一点
  • 我想通了,应该是prop('checked')

标签: javascript jquery validation radio-button


【解决方案1】:

我认为你可以简化一下DEMO

$('form').on('submit', function(e){
   var radios = $(this).find('input:radio').removeClass('notChecked');
   radios.filter(':not(:checked)').addClass('notChecked');
   if(radios.hasClass('notChecked')) return false;
});

【讨论】:

    猜你喜欢
    • 2011-10-03
    • 2015-01-03
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 2011-06-11
    • 2021-02-01
    • 2013-10-20
    • 2021-02-15
    相关资源
    最近更新 更多