如果值等于,则Jquery取消焦点字段

时间:2017-03-02 18:17:44

标签: javascript jquery

我想在下面的代码中尝试实现的是当输入字段中输入“0”时,它变得没有聚焦而其他东西会被触发。

$(".val-0").keyup(function() {
  if ($(this).val() === 0) {
    $(this).blur();
    // Do other Stuffss
  }

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<input class="val-0" type="number">

2 个答案:

答案 0 :(得分:1)

你遗漏了一个关于类名的开头报价。

另一方面,您正在使用===来比较哪些需要相同的数据类型(严格比较)。 input.val()会返回string类型而非integer的数据。

更深入的解释here

您想使用$(this).val() == 0)$(this).val() === '0')

进行比较

$(".val-0").keyup(function() {
  if ($(this).val() == 0) {
    $(this).blur();
    // Do other Stuffss
  }

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<input class="val-0" type="number">

答案 1 :(得分:0)

由于某种原因,您无法将keyup事件附加到输入类型的数字。我试着在这里举例说明。我希望它会对你有所帮助。

&#13;
&#13;
$(".val-0").keyup(function(event) {
console.log(event.which + ", " + $(this).val());
  if ($(this).val() === 0) {
    $(this).blur();
    console.log($(this));
  }

});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input class="val-0" type="text" />
&#13;
&#13;
&#13;