如果没有禁用,我只需要切换一个元素。
jQuery("#sbutton").toggle(
function () {
if (!jQuery(\'input[name^="choose"]\').attr ( "disabled" )) {
jQuery(\'input[name^="choose"]\').attr ( "checked" , true);
}
},
function () {
jQuery(\'input[name^="choose"]\').removeAttr("Checked");
}
)
IF条件可能吗?
答案 0 :(得分:1)
你可能想做什么(感谢Frédéric):
jQuery("#sbutton").click(function() {
if (jQuery('input[name^="choose"]').is(':disabled'))
return false;
if (jQuery('input[name^="choose"]').is(':checked'))
jQuery('input[name^="choose"]').removeAttr("checked");
else
jQuery('input[name^="choose"]').attr("checked", true);
});
或只是
jQuery("#sbutton").click(function() {
var checkbox = jQuery('input[name^="choose"]');
if (checkbox.is(':disabled'))
return false;
checkbox.attr('checked', !checkbox.is(':checked'));
});
您的代码存在的问题是,您希望在每次单击按钮时评估禁用的评估,如果为true,则使用第一个函数。它只会在每次其他点击时调用,而另一个功能并不关心它是否被禁用。它会检查复选框,无论如何。您必须像我已经完成的那样绑定click事件,或者根据是否禁用该按钮来绑定和取消绑定toggle事件。
将来,如果您将代码作为小提琴(http://www.jsfiddle.net)展示并更全面地描述您正在尝试做什么以及哪些不能正常工作,那将更容易为您提供帮助