无法根据复选框选中的属性在按钮中添加/删除已禁用的属性
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