当我的两个输入 [类型=文本] 都清除或为空时,我如何取消选中复选框



当我的两个类型文本input为空时,如何取消选中input类型复选框,并检查我的input类型文本之一是否已填充?

$('input[name="t2"],input[name="t3"]').keyup(function() {
  $('input[name="t1"]').prop("checked", $.trim($(this).val()).length != 0);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" name="t1" /> Price range from:
<input type="text" name="t2" /> to <input type="text" name="t2" />

JSFiddle : 在此链接中

当我在任何输入类型文本上键入内容(选中复选框)时,它会正确执行,但是当我清除两个字段时不起作用,因为当只有一个输入清除时,复选框未选中。你能帮我解决这个问题吗?谢谢

您触发了两次。您只需要检查这两个字段中是否有任何输入。喜欢这个:

$('input[name="t2"],input[name="t3"]').keyup(function () {           
      $('input[name="t1"]').prop("checked",
        //now check if any of the two inputs have content
        $.trim($('input[name="t2"]').val()).length != 0 ||
        $.trim($('input[name="t3"]').val()).length != 0
       );
   });

你可以简单地这样做,你得到每个输入的值。如果两个都为空,则取消选中,如果一个已填充,则选中该框。

$('input[name="t2"],input[name="t3"]').keyup(function() {
  var t2 = $('input[name="t2"]').val();
  var t3 = $('input[name="t3"]').val();
  if (t2 != "" || t3 != "") {
    $('input[name="t1"]').prop("checked", true);
  } else {
    $('input[name="t1"]').prop("checked", false);
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<input type='checkbox' name='t1'>
<input type="text" name="t2">
<input type="text" name="t3">

最新更新