Jquery复选框仍然检查点击

时间:2016-09-30 03:34:41

标签: javascript jquery html forms checkbox

我有一个复选框,一旦用户点击输入框,就需要继续检查。

问题:首先单击复选框已选中,效果正常。再次单击输入时,将取消选中该复选框。

需要输出:

我希望复选框保持选中状态,因为这会触发更改事件。

我搜索了很多例子来找到这个解决方案,却找不到它。

感谢任何帮助。

请看小提琴:

http://jsfiddle.net/nrYec/194/

JS:

$('input').click(function() {
     $('#x').text(this.checked ? "is checked" : "is not checked");
 });
 $('.b2').click(function() {
      $('.trigger').click();
 });

6 个答案:

答案 0 :(得分:3)

您在评论中澄清了您希望单击文本框以选中复选框,但是要点击复选框本身才能正常工作。因此,请勿触发点击事件,只需直接设置复选框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>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

试试这个:

&#13;
&#13;
$('.b2').click(function() {
    if (!$('.trigger').prop('checked')) {
        $('.trigger').prop('checked', 'true');
    };
});

$('input').click(function() {
    $('#x').text($('.trigger').prop('checked') ? "is checked" : "is not checked");
});
&#13;
<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>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

一种选择是将其包装在SELECT mhsw.*,tbl.* FROM mhsw INNER JOIN (SELECT mkid FROM krs Where grade IN ('A', 'B', 'C') AND final = 'Y') tbl ON mhsw.nim = tbl.mkid 语句中:

JS Fiddle

if

答案 3 :(得分:0)

$('input').click(function() {
  if ($(this).attr('type') !== "checkbox")
    $('input[type="checkbox"]').prop('checked', true)
});

这将强制在单击任何其他输入时检查复选框,但在单击时表现正常。

答案 4 :(得分:0)

选中复选框的最佳方法是在复选框上添加一个处理器onchange listener,然后设置它javascript attribute checked = true

$('.trigger').on('change', function() {
 $('.trigger')[0].checked = true;
})

答案 5 :(得分:0)

文件编号:prop

$('.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>