textbox
;有十进制验证:
i.e User can enter only Numbers(upto two place decimal) and Dot.
这些是 keypress 和 keyup 。
直接输入数字时,它可以正常工作。
但是当我们在文本框中拖放一些字母时 然后它不起作用;直到我点击文本框
Javascript提供了哪些事件,可帮助我检测值拖放到文本框。
答案 0 :(得分:0)
试试这个:
$(document).ready(function() {
var oldVal = '';
$('.myTexbox').keypress(function (event) {
var a = isDecimalNumber(event, this)
if (this.value.match("^[0-9]*[.,]?[0-9]{0,2}$"))
oldVal = this.value;
return a;
});
$('.myTexbox').keyup(function (event) {
if (!this.value.match("^[0-9]*[.,]?[0-9]{0,2}$")) {
$(this).val(oldVal);
}
});
$('.myTexbox').on("drop", function(event) {
event.preventDefault();
event.stopPropagation();
if (!this.value.match("^[0-9]*[.,]?[0-9]{0,2}$")) {
$(this).val(oldVal);
}
});
});
function isDecimalNumber(eve, element) {
var charCode = (eve.which) ? eve.which : event.keyCode
if (charCode == 44 || charCode == 46 || charCode == 8 || (charCode > 48 && charCode < 57))
return true;
return false;
}
我认为这正是你所需要的。
我在JS Fiddle中测试了代码,它的工作方式与预期的一样。