Jquery复选框在单击时保持选中状态
Jquery Checkbox remains check on click
我有一个复选框,一旦用户单击输入框,它就需要保持选中状态。
问题:第一次单击时,复选框被选中,工作正常。再次单击输入时,复选框将变为未选中状态。
所需输出:
我希望复选框保持选中状态,因为这会触发更改事件。
我搜索了很多例子来找到这个解决方案,但找不到
感谢您的帮助。
请参阅Fiddle:
http://jsfiddle.net/nrYec/194/
JS:
$('input').click(function() {
$('#x').text(this.checked ? "is checked" : "is not checked");
});
$('.b2').click(function() {
$('.trigger').click();
});
您在评论中澄清了,您希望点击文本框来选中复选框,但点击复选框本身可以正常工作。因此,不要触发点击事件,只需直接设置复选框的checked
属性:
$('.b2').click(function() {
$('.trigger').prop("checked", true);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input class='trigger' type='checkbox'>
<input class='b2' type='text' name='something'>
<input class='b2' type='text' name='something'>
<div id='x'></div>
试试这个:
$('.b2').click(function() {
if (!$('.trigger').prop('checked')) {
$('.trigger').prop('checked', 'true');
};
});
$('input').click(function() {
$('#x').text($('.trigger').prop('checked') ? "is checked" : "is not checked");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class='trigger' type='checkbox'>
<input class='b2' type='text' name='something'>
<input class='b2' type='text' name='something'>
<div id='x'></div>
一个选项是将其包装在if
语句中:
JS Fiddle
$('.b2').click(function() {
var trigger = $('.trigger');
if (!$('.trigger').is(':checked')) {
trigger.click();
}
});
$('input').click(function() {
// And need to check if the checkbox (not any input) is checked here
$('#x').text($('.trigger').is(':checked') ? "is checked" : "is not checked");
});
$('input').click(function() {
if ($(this).attr('type') !== "checkbox")
$('input[type="checkbox"]').prop('checked', true)
});
这将强制在单击任何其他输入时选中复选框,但在单击时行为正常。
保持复选框处于选中状态的最佳方法是在复选框上添加一个处理程序onchange监听器,并将其设置为javascript attribute checked=true
$('.trigger').on('change', function() {
$('.trigger')[0].checked = true;
})
文档参考:道具
$('.b2').on('click',function() {
$('.trigger').prop("checked", true);
}).on('blur',function(){
if($(this).val().trim().length === 0){
$('.trigger').prop("checked", false);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class='trigger' type='checkbox'>
<input class='b2' type='text' name='something'>
<input class='b2' type='text' name='something'>
<div id='x'></div>
相关文章:
- 角度复选框不会保持选中状态
- 复选框保持React JS中各组件的状态
- jQuery复选框被锁定为选中状态
- 主干-复选框保持选中状态
- 基于复选框状态的条件数学
- 导航到另一个页面后,复选框状态会更改
- 处于特定状态的复选框
- 如何创建至少 1 个框处于活动状态的复选框列表
- 如何根据各种复选框状态执行操作
- 使用 javascript 获取复选框的状态
- 按钮未启用,如果复选框处于打开状态
- 如何保存动态创建的复选框的更改状态
- 检查复选框状态-Javascript
- 创建一个复选框按钮的散列,这些按钮在单击时在Twitter Bootstrap Button组中处于活动状态
- 多个复选框中的一个应始终保持未选中状态
- Twitter引导程序:删除/切换类似复选框的按钮组的活动状态
- JavaScript-使用sessionStorage保存文档之间共享的复选框状态
- 带有角度指令的三状态复选框
- ReactJS自定义三状态复选框将不显示复选标记
- 表示单页应用程序的用户配置状态(复选框、选择列表)的标准做法