jQuery复选框被锁定为选中状态
jQueryCheckboxes being locked to checked state
我在不同的选项卡中有两个表单,每个交叉字段的值都复制到另一个表单onchange/keyup。
当我的复选框更改时,背景图像也会更改以突出显示所选内容,出于某种原因,我不知道为什么,但当复选框打开时,它们不会再次关闭。
jsfiddle链接>http://jsfiddle.net/UMwkV/
html
<fieldset class="fieldset-form left">
<label>Flammable</label>
<div class="clear"></div>
<div class="flammable"></div>
<input type="checkbox" id="flammable" class="flamcheck" name="flammable" value="1" style="width:12px; height:12px; margin:0 auto; display:block; margin-top:5;">
</fieldset>
<fieldset class="fieldset-form left">
<label>Flammable</label>
<div class="clear"></div>
<div class="flammable"></div>
<input type="checkbox" id="flammable" class="flamcheck" name="flammable" value="1" style="width:12px; height:12px; margin:0 auto; display:block; margin-top:5;">
</fieldset>
jQuery
$("input[name=flammable]").change(function() {
if ($('.flamcheck').is(":checked")) {
$('.flammable').css("backgroundColor", "url(images/flame-on.png)");
$('.flamcheck').prop("checked", true);
}
if (!$('.flamcheck').is(":checked")) {
$('.flammable').css("backgroundImage", "url(images/flammable.png)");
$('.flamcheck').prop("checked", false);
}
})
如果有人能指出我遗漏的显而易见的东西,我将不胜感激。
使用
$(this).is(":checked")
而是
http://jsfiddle.net/UMwkV/6/
当至少有一个元素与选择器匹配时,$.is()返回true。一旦两个复选框都被选中,当您再次单击其中一个复选框时,另一个复选复选框仍将被选中,因此当您在两个复选盒上运行is()时,它将始终返回true。
AFAIK
.is(':checked')
在DOM上运行,因为它是通过连线呈现的,而不是当前活动的DOM
因此,解决方案是使用.prop('checked')
而不是
http://jsfiddle.net/UMwkV/1/
版本2允许独立检查:
http://jsfiddle.net/UMwkV/2/
版本3导致相互更新,并且两个复选框都可以点击:
http://jsfiddle.net/UMwkV/8/
我发现了这个问题。此代码将正常工作
$(".flamcheck").change(function() {
if ($(this).prop("checked") == true ) {
$('.flammable').css("backgroundColor", "url(images/flame-on.png)");
$('.flamcheck').prop("checked", true);
}
if ($(this).prop("checked") == false) {
$('.flammable').css("backgroundImage", "url(images/flammable.png)");
$('.flamcheck').prop("checked", false);
}
});
检查此项-http://jsfiddle.net/UMwkV/10/
检查此工作演示
你的代码有语法错误,我已经更正了,请检查fiddle
相关文章:
- 事件和状态
- 获取选择框的状态
- 相位器状态未捕获参考错误
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何使用密码检测网络中的状态连接
- Ember.js-接口状态应该存储在哪里
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- 在Angular 2中布线期间保持零部件处于活动状态
- 在mvc应用程序中,在回发时保留最初隐藏的文本框的隐藏或可见状态
- XMLHttpRequest未返回值-状态202
- 使用javascript反复检查用户在facebook上的登录状态
- 如何使bxslider仅在移动视图中处于活动状态
- 获取ASP.NET Ajax Timer状态
- React redux初始化功能,无论状态变化如何
- 无法在现有状态转换期间更新-未使用任何非法的setState()
- 悬停下拉菜单即使在鼠标移出后也保持活动状态
- jQuery复选框被锁定为选中状态
- 鼠标在全屏+指针锁定状态下按下任何键时都不会启动
- 如何获得在AJAX中使用的未确认或锁定状态的用户帐户
- 在PHP中是否有可能发现客户端的计算机没有处于睡眠状态或锁定模式?