如果未选中,则更改单选按钮的背景颜色

时间:2014-04-04 18:19:30

标签: javascript jquery validation radio-button

用户在未检查所有单选按钮的情况下提交时,未应答的按钮应以与检查的背景颜色不同的背景颜色显示。我试图实现这个的方式是:

  1. 创建一个空数组 - “store”
  2. 遍历每个单选按钮并在数组“store”中按数字1(true)(如果已检查项目),否则按0(false)。
  3. 然后我想循环遍历这个数组,并为那些在“store”中具有零值的项添加一个Class。

    $(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
    
  4. 我做错了什么?

    我的小提琴:

    FIDDLE

1 个答案:

答案 0 :(得分:0)

我认为你可以简化一点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;
});