复选框多次检查选择值

时间:2012-02-28 07:09:19

标签: javascript jquery jquery-ui

我有一个复选框,当设置为true时必须禁用其他文本框。 这里的实际问题是复选框只有在我第一次点击两次时才更改值。我第一次点击两次禁用其他文本框。否则它完全正常工作。 在这里我给了我的jquery函数:

function bundlecheckout(val,total)
{ 

   $("#file_check"+val).click(function() {
        $('input[id^="file_check"]').attr("checked", false);
        //$("#file_check"+val).unbind('click');
        $(this).attr('checked', true);
        $("#checkout").attr("disabled", !this.checked);
        for(i=0;i<=total+1;i++)
        {             
            if(i !=val ){           
            $("#txtinstruction"+i).attr("disabled", this.checked);
            $("#txturl"+i).attr("disabled", this.checked);
        }
        else{
            $("#txtinstruction"+i).removeAttr("disabled");
            $("#txturl"+i).removeAttr("disabled");
            }
        }   
   }    
);}

复选框元素

<input type="checkbox" class="file_check" name="file_upload_check" value="<?php echo $testing_type_id;?>" id="file_check<?php echo $testing_type_id;?>" onclick="bundlecheckout(<?php echo $testing_type_id;?>,<?php echo $total ?>);"/>Apply<br />

1 个答案:

答案 0 :(得分:0)

尝试以下代码。我不知道为什么你在点击本身上绑定点击事件。

function bundlecheckout(val,total,e)
    { 
            $('input[id^="file_check"]').attr("checked", false);
            //$("#file_check"+val).unbind('click');
            $(e).attr('checked', true);
            $("#checkout").attr("disabled", !this.checked);
            for(i=0;i<=total+1;i++)
            {             
                if(i !=val ){           
                $("#txtinstruction"+i).attr("disabled", this.checked);
                $("#txturl"+i).attr("disabled", this.checked);
            }
            else{
                $("#txtinstruction"+i).removeAttr("disabled");
                $("#txturl"+i).removeAttr("disabled");
                }
            }   
      }
<input type="checkbox" class="file_check" name="file_upload_check" value="<?php echo $testing_type_id;?>" id="file_check<?php echo $testing_type_id;?>" onclick="bundlecheckout(<?php echo $testing_type_id;?>,<?php echo $total ?>,this);"/>Apply<br />