<ion-view>
<ion-content>
<input type="text" ng-model="get.Name"/>
</ion-content>
</ion-view>
<ion-footer>
<button ng-click="save(get)">Save</button>
</ion-footer>
当我按下8(没有消息,因为8不是> 8)。当我按9时,它会触发警报,只有8个单位可用。到目前为止这么好但是当我按下12时它没有触发警报,为什么? 12是>看起来像keyup只读取输入的第一个数字。如何强制键盘读取数字12?
答案 0 :(得分:0)
您需要在函数中传递事件对象以获取keycode
$(".maxQtyclass").keyup(function (e) {
var maxQty = $(this).attr('data-qty');
//lets say it is 8\
if (parseInt($(this).val()) > parseInt(maxQty)
&& e.keyCode != 46 // delete
&& e.keyCode != 8 // backspace
) {
$(this).val(maxQty);
console.log('Only ' + maxQty + ' unit(s) available!');
return false;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="maxQtyclass" data-qty="8"/>
答案 1 :(得分:0)
因为它正在进行字符串比较所以“12”&gt; “8”失败了。尝试转换为int并进行比较,如下所示。
$(".maxQtyclass").keyup(function () {
var maxQty = $(this).attr('data-qty');
//lets say it is 8
if (parseInt($(this).val()) > parseInt(maxQty)
&& e.keyCode != 46 // delete
&& e.keyCode != 8 // backspace
) {
$(this).val(maxQty);
alert('Only ' + maxQty + ' unit(s) available!');
return false;
}
});
答案 2 :(得分:0)
您应该将输入文本解析为数字。在您的场景中,您比较&#34; 12&#34; &GT; &#34; 8&#34;在字符串数据类型中,并且因为12以字符串中的1和1开头小于8,条件返回false。像这样更改代码:
$(".maxQtyclass").keyup(function () {
var maxQty = parseInt($(this).attr('data-qty'));
//lets say it is 8
if (parseInt($(this).val()) > maxQty
&& e.keyCode != 46 // delete
&& e.keyCode != 8 // backspace
) {
$(this).val(maxQty);
alert('Only ' + maxQty + ' unit(s) available!');
return false;
}
});
确保所有数字都是int。