无法根据复选框选中的属性在按钮中添加/删除已禁用的属性

jQuery的:

 function enableDisableButton() { var isChecked = ($('input[name=ignore-checkbox]').is(':checked')); if (isChecked == true) { $("button[name=set-up-account]").removeAttr("disabled"); } else { $("button[name=set-up-account]").attr("disabled", "disabled"); } } $('#mobilePage').live('pageinit', function (event) { //document ready for jquery mobile enableDisableButton(); $('#ignore-checkbox').bind("change", function () { enableDisableButton(); }); });  

HTML:

  @using (Html.BeginForm("Account", "SetUpAccount", FormMethod.Post, new { @id = "account-set-up", @data_ajax = "false" })) { 
}

我想基于复选框选中属性启用/禁用“ Set Up Account按钮。 如果选中复选框,则启用该按钮,否则禁用。 在页面加载时,我正在禁用该按钮

我面临的问题是,

在页面加载时,它禁用按钮,但它没有根据复选框的更改事件添加/删除禁用的属性,我在firebug中检查,它根据已检查和未检查的值正确进入循环。

注意:我使用的是Jquery mobile 1.2和jquery 1.7。 此外,在发布此处之前我在谷歌搜索,根据复选框选中的值启用和禁用按钮下有很多post。 但没有人能解决我的问题。

有什么问题? 请帮我

谢谢…

我不确定这是否有助于解决您的主要问题,但根据http://api.jquery.com/prop/,您应该使用.prop()函数添加和删除已禁用的属性,而不是.attr ()和.removeAttr()函数。

要添加属性:

 .prop("disabled", true); 

要删除该属性:

 .prop("disabled", false); 

我在寻找上述信息时偶然发现了这个问题,所以我想我会分享。

由于Jquery Mobile,它没有启用按钮。 在JQM中,我们需要刷新表单元素,同时操作它

解决方案是

  function enableDisableButton() { var isChecked = ($('input[name=ignore-checkbox]').is(':checked')); if (isChecked) { $("button[name='set-up-account']").removeAttr("disabled").button('refresh'); } else { $("button[name='set-up-account']").attr("disabled", "disabled").button('refresh'); } } $('#mobilePage').live('pageinit', function (event) { enableDisableButton(); $('#ignore-checkbox').bind("change", function () { enableDisableButton(); }); }); 

这个问题通过添加解决了

 .button('refresh'); 

像这个

  $('#setagb').change(function(){ if ($(this).is(':checked')) { $("#submit").removeAttr("disabled"); } else { $("#submit").attr( "disabled", "disabled" ); } }); 

试试这个

 $("input[name=ignore-checkbox]").click(function() { $("button[name=set-up-account]").attr("disabled", this.checked); }); 

DEMO