想知道如何实现切换,它只在点击时停用输入“meta_website_url”但不会回来。
<input type="checkbox" id="PostWebsite" class="calculate-total" checked="checked">
<input id="meta_website_url" type="text" name="meta[6]" value="">
$('body').on('click', '#PostWebsite', function(){
if (!$(this).attr('checked') || $(this).attr('checked') == 'off'){
$(this).attr('checked','on');
$("#meta_website_url").attr("disabled", true);
}
else if ($(this).attr('checked') == 'off'){
$(this).attr('checked','off');
$("#meta_website_url").attr("disabled", false);
}
});
答案 0 :(得分:0)
这是因为你的if
声明。您没有检查checked
属性是否未设置为&#34; off&#34;在第一个声明中。您的if
语句有效地说:如果设置为off
,请执行此操作,否则如果设置为off
,请执行此操作 - 后者永远不会被打了。
变化:
if (!$(this).attr('checked') || $(this).attr('checked') == 'off'){
^^
要:
if (!$(this).attr('checked') || $(this).attr('checked') != 'off'){
作为旁注,如果您使用的是jQuery 1.8+,则应使用prop
作为布尔属性:$(...).prop('checked', true);
答案 1 :(得分:0)
使用Jquery的removeAttr(“~~”)方法。