2012-10-19 97 views
1

我能够使用jquery 1.6获得此工作,但我升级到1.8,无法使其工作。这里的jfiddle:linkjquery 1.8.2基于复选框状态启用/禁用提交按钮

,代码:

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);​ 
+1

尝试使用prop而不是attr。另外我想我们可以删除禁用的属性,如果我们想启用,使用removeAttr('禁用'),而不是设置attr('禁用','') –

回答

1

使用removeAttr()

if($('#tosId').prop('checked')) 
    { 
     $('#submitId').removeAttr('disabled'); 
    } 
    else 
    { 
     $('#submitId').attr('disabled', 'disabled'); 
    } 
+1

...你是男人。谢谢。完美的作品。我会在10分钟后接受你的回答 – Patrick

0
应该

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

,而不是$('#submitId').attr('disabled', '');

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

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

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

应该工作jfiddle

3

它使用prop方法的jQuery 1.8个好主意:

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

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

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

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

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

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

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

从jQuery的文档http://api.jquery.com/prop/

的.prop()方法应该被用来设置残疾人和检查代替。 attr()方法。

相关问题