首页 > 解决方案 > 当我的两个输入 [type=text] 都清除或为空时,如何取消选中复选框?

问题描述

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

$('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:在此链接中

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

标签: javascriptjqueryformsfunction

解决方案


你触发了两次。您只需要检查两个字段中的任何一个是否有输入。像这样:

$('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
       );
   });

推荐阅读