2017-03-02 60 views
2

我想在下面的代码中实现的是当“0”已被输入到输入字段时,它得不到重点和其他东西触发。Jquery Unfocus字段,如果值等于

$(".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

你缺少的类名称的开盘,一两件事。

另一方面,您正在使用===来比较哪一个需要相同的数据类型(严格比较)。 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">

0

比较由于不能附加KEYUP事件数量的输入类型有些道理的。我试图在这里展示工作示例。我希望它能帮助你。

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

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

 
<input class="val-0" type="text" />