复选框不能在视觉上取消选中
Checkbox not unchecking visually
我有一个表单,里面是这样的:
<fieldset class="billing-address">
<legend>Billing Address</legend>
<ol>
<li class="text combi"><label for="bill-address1">Address:</label> <input size="20" value="" name="basket_order:default:bill_address1" id="bill-address1"></li>
<li class="text"><label for="bill-address2">Address:</label> <input size="20" value="" name="basket_order:default:bill_address2" id="bill-address2"></li>
<li class="text"><label for="bill-address3">Town/City:</label> <input size="20" value="" name="basket_order:default:bill_address3" id="bill-address3"></li>
<li class="text"><label for="bill-address4">Region:</label> <input size="20" value="" name="basket_order:default:bill_address4" id="bill-address4"></li>
<li class="text"><label for="bill-post-code">Post code:</label> <input size="10" value="" name="basket_order:default:bill_postcode" id="bill-post-code"></li>
</ol>
</fieldset>
由于太雇佣的原因进入这里,我不能直接得到HTML,需要通过javascript做的事情。因此,我在上面添加了一个复选框和标签,使用如下代码:
$('.billing-address ol').before('<input type="checkbox" id="billing-add-different" /><label for="billing-add-different">My billing address is the same as my delivery address</label>');
$('#billing-add-different').prop('checked',true).toggle(
function(){
$('.billing-address ol input, .billing-address ol select').css('background','#CCC').attr('disabled','disabled');
},
function(){
$('.billing-address ol input, .billing-address ol select').css('background','#FFF').removeAttr('disabled');
}
);
这将根据是否勾选来切换'disabled'属性和背景颜色。
然而,尽管函数正在触发,复选框仍然被选中。
我在http://jsfiddle.net/EFQuh/上做了一个jsfiddle来说明。此错误出现在Firefox 8.0中,其他版本不确定
我不知道是什么问题(可能是toggle
函数),但您可以将代码简化为:
$('#billing-add-different').prop('checked',true).change(function(){
$('.billing-address ol input, .billing-address ol select')
.css('background-color', this.checked ? '#CCC' : '#FFF')
.prop('disabled',this.checked);
}).change();
您需要使用变更事件并在事件的功能中检查this.checked
相关文章:
- Ajax 请求正在取消页面上的其他 JS 事件
- 取消图像上传按钮
- 如何在Formidable(Node.js)中取消用户上传
- 自定义CSS复选框jQuery诱导的“;“已检查”;属性不't在视觉上”;“检查”;复选框
- Bootstrap Switch触发switchChange事件,但没有'视觉上没有变化
- 取消文件上载时删除图像预览
- 如何手动取消服务器上的 XMLHttpRequest 文件上载(流)
- 使用 jQuery 从视觉上删除表行
- 取消文件上传 - 侦听器
- jQuery-File-Upload 取消 javascript 上传
- 动态禁用按钮在视觉上不会更改
- 如何通过单击“取消”按钮取消文件上传
- 如何在单击按钮时取消文件上传
- Javascript:确认确定取消按钮上的自定义文本
- 获取jQuery事件处理程序中取消按钮上确认对话框的结果
- 复选框不能在视觉上取消选中
- 如何在取消按钮上检查AngularJs表单字段
- 在取消按钮上指定自定义函数
- 取消文件上传在fineuploader jquery插件
- 如果条件不满足,如何在Dropzone.js中取消/中止上传