jquery 如何检查输入是否〈=2或未定义?

7lrncoxx  于 2022-12-03  发布在  jQuery
关注(0)|答案(2)|浏览(141)

长度〈= 2检查只有在我手动删除输入中的文本时才能**工作。但是,我的输入有关闭按钮,它有reset();当我按下它的时候,我的输入是空的,但是jquery代码并不关心这个,也不认为输入是空的,因为我知道reset();函数将我的输入表单变为undefined..所以我必须在我的jQuery中检查输入是否为undefined,但是它不起作用。

<script>
    $('.regulator').keyup(function() {
      
      if ($(this).val().length <= 2 || $(this).val().value == undefined) {
        $('.quickSearchResults').hide();
      }  else {
        $('.quickSearchResults').show();
      }
    }).keyup();
    </script>
piv4azn7

piv4azn71#

我建议您使用以下代码:
1.使用.on(“input”,因为它也处理粘贴
1.在点击、输入和加载时重复使用切换功能
1.在重置时添加超时
第一个

wfveoks0

wfveoks02#

如果您使用的是用户输入的值,则实际上没有理由检查undefined。当用户与.val()交互时,它不会返回undefined。

$('.regulator').keyup(function() {
  
  if ($(this).val().length <= 2) {
    $('.quickSearchResults').hide();
  }  else {
    $('.quickSearchResults').show();
  }
}

现在,如果您真的想检查未定义,请先执行该检查

$('.regulator').keyup(function() {
  var val = $(this).val()
  if (val === undefined || val.length <= 2) {
    $('.quickSearchResults').hide();
  }  else {
    $('.quickSearchResults').show();
  }
}

大多数人会如何编码

$('.regulator').on('input', function() {
    $('.quickSearchResults').toggle(val.length > 2);
}).trigger('input');

现在,若要行程重设,请接听事件。

$('#yourForm').on("reset", function () {
  $('.quickSearchResults').hide();
});

$('#yourForm').on("reset", function () {
  window.setTimeout(function () {
    $('.regulator').trigger('input');
  });
});

相关问题