当我的两个类型文本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">