1

我可以使用 jquery 1.6 来完成这项工作,但是我升级到 1.8 并且无法让它工作。这是jfiddle:链接

和代码:

HTML:

 <form id="ad_form" method="post" action="">
    <input type="checkbox" id="tosId" name="tos_name" style="padding:0; margin:0" ></input>       
    <br />
    <input type="submit" id="submitId" name="submit_name" value="Submit"  /></input>
 </form>​

jQuery:

 $('#submitId').attr('disabled', 'disabled');  

 function updateFormEnabled() 
     {
         if($('#tosId').prop('checked'))
         {
             $('#submitId').attr('disabled', '');
         } 
         else 
         {
             $('#submitId').attr('disabled', 'disabled');
         }
     }

 $('#tosId').change(updateFormEnabled);​
4

6 回答 6

3

prop在 jQuery 1.8中使用方法是个好主意:

function updateFormEnabled() 
{
    var checked = $('#tosId').prop('checked');
    $('#submitId').prop('disabled', !checked);
}

小提琴:http: //jsfiddle.net/3aFaA/3/

于 2012-10-19T13:23:28.430 回答
3

您应该使用 .prop() 设置禁用属性

function updateFormEnabled(){         
    $('#submitId').prop('disabled', !$('#tosId').prop('checked'));        
 }

来自 jQuery 文档http://api.jquery.com/prop/

应该使用 .prop() 方法来设置禁用和检查,而不是 .attr() 方法。

于 2012-10-19T13:28:45.367 回答
1

使用 removeAttr()

  if($('#tosId').prop('checked'))
     {
         $('#submitId').removeAttr('disabled');
     } 
     else 
     {
         $('#submitId').attr('disabled', 'disabled');
     }
于 2012-10-19T13:20:57.323 回答
0

应该$('#submitId').removeAttr('disabled');

代替$('#submitId').attr('disabled', '');

于 2012-10-19T13:21:14.190 回答
0
$('#submitId').attr('disabled', 'disabled');  

function updateFormEnabled() 
{
    if($('#tosId').prop('checked'))
    {
        $('#submitId').attr('disabled', false);
    } 
    else 
    {
        $('#submitId').attr('disabled', true);
    }
}

$('#tosId').change(updateFormEnabled);​

应该可以工作

于 2012-10-19T13:21:42.720 回答
0
$('#submitId').attr('disabled', 'disabled');  

function updateFormEnabled()
    {
        if($('#tosId').prop('checked'))
        {
            $('#submitId').attr('disabled', false);
        }
        else
        {
            $('#submitId').attr('disabled', true);
        }
    }

$('#tosId').change(updateFormEnabled);
于 2012-10-19T13:26:08.567 回答