我有一个像这样的输入字段
<input type ="number" id="numberTxt" placeholder="Number Only"/>
我正在检查该值是否为数字,并使用keypress
事件清除为以下函数
<script>
$(document).ready(function(numberTxt){
$('#numberTxt').keypress(function(event) {
var charCode = (event.which) ? event.which : event.keyCode;
if (charCode != 45 && (charCode != 46 || $(this).val().indexOf('.') != -1) && (charCode < 48 || charCode > 57))
{
return false;
}
else
return true;
});
});
</script>
但是当我们复制粘贴一些文本(CTRL V CNTRL C)时,上面的代码是 无法正常工作
或者我在下面尝试过这个功能 但是没有得到那时的输入值 它的“”(空字符串)。 当我们复制粘贴它正确触发此功能时。
<script>
$(document).ready(function(){
$('#numberTxt').on("paste",function('numberTxt') {
var val = $('#numberTxt').val() ;
});
});
</script>
是使用event获取输入标记值的任何其他方法, 如果我在
之前传递了像按键功能这样的事件复制粘贴期间检查号码的任何其他建议或答案也会有所帮助
答案 0 :(得分:2)
使用.bind('input'.....
http://jsfiddle.net/pxfunc/KDLjf/从
获得了这个Is it possible to get pasted text without using the setTimeout() function?
答案 1 :(得分:1)
这是验证 PASTE
上的整数值的方法$('#numberTxt').on("paste",function(e) {
var $this = $(this);
setTimeout(function(){
var val = $this.val(),
regex = /^[\d]+$/;
if( regex.test(val) ){
$this.val( val );
}
else{
$this.val('');
}
alert(val);
},0);
});