从输入值中检索整数值时,jQuery似乎存在一些剥离问题。
我的代码:
// Control the rating input field to only accept numeric values
// -else set the values back to 0
// For the highest value:
$('.dsListItem .firstItem').keyup(function(){
if (isNumber($(this).val()) && $(this).val() < $('.dsListItem .lastItem').val()) {
console.log('FIRST: ' + $(this).val() + ' >>> ' + $('.dsListItem .lastItem').val());
$(this).val($('.dsListItem .lastItem').val());
}
});
// For the lowest value:
$('.dsListItem .lastItem').keyup(function(){
if (isNumber($(this).val()) && $(this).val() > $('.dsListItem .firstItem').val()) {
console.log('LAST: ' + $(this).val() + ' >>> ' + $('.dsListItem .firstItem').val());
$(this).val($('.dsListItem .firstItem').val());
}
});
Safari Inspector告诉我:
最后:11&gt;&gt;&gt; 10
最后:2&gt;&gt;&gt; 10
最后:1&gt;&gt;&gt; 10
只有0和1有效。如果10被验证为“1”,则它不应该通过1> 1。 1要么,但它确实如此。
我不明白为什么console.log()打印显示正确的整数但是当我用它计算时,10 get被转换为1。
我尝试使用($(this).val()* 1)来编号,但这并没有改变任何东西,无论如何;该值已被检查为有效的数值。
答案 0 :(得分:1)
如果您确定使用的是数字值,则必须使用parseInt进行转换,这样您就可以确定Javascript也会与数字对话,而不是将数字与字符串进行比较!
我认为使用parseInt进行强制转换比使用* 1指令进行强制转换...