我有一个名为restrict-numbers 的类,我想将输入的字符限制为仅接受数字,我使用了以下代码,这很好,但问题是我想在输入中粘贴时进行相同的限制在不完全禁用粘贴的情况下提交:
function input_only_numbers(){
$("input[type=text]").each(function(){
if( $(this).hasClass("restrict-numbers") ){
$(this).keydown(function(event) {
if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 ||
// Allow: Ctrl+A
(event.keyCode == 65 && event.ctrlKey === true) ||
// Allow: Ctrl+V
(event.ctrlKey == true && (event.which == '118' || event.which == '86')) ||
// Allow: Ctrl+c
(event.ctrlKey == true && (event.which == '99' || event.which == '67')) ||
// Allow: Ctrl+x
(event.ctrlKey == true && (event.which == '120' || event.which == '88')) ||
// Allow: home, end, left, right
(event.keyCode >= 35 && event.keyCode <= 39)) {
// let it happen, don't do anything
return;
}
else {
// Ensure that it is a number and stop the keypress
if ( event.shiftKey|| (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 ) ){
event.preventDefault();
}
}
});
}
});
}
实施您的表单jquery.numeric plugin.
$(document).ready(function(){
$(".numeric").numeric();
});
此外,这也适用于文本区域!
或者更好地在用户尝试提交时更改输入,
$('form').submit(function () {
if ($('#numeric').value != $('#numeric').value.replace(/[^0-9\.]/g, '')) {
$('#numeric').value = $('#numeric').value.replace(/[^0-9\.]/g, '');
}
});
这就是你正在做的事情,你想要删除除数字之外的字符,所以为什么要付出如此大的努力,只是在最后删除它们。
这是我最喜欢的选择,
尝试 HTML5number input:
<input type="number" value="0" min="0">
对于不兼容的浏览器有现代化 and 网页表格2后备措施。
or
您也可以将“粘贴”操作绑定到函数,
$( "#input" ).on("paste", function() {
if ($('"#input').val() != $('"#input').val().replace(/[^\d\.]/g,""))
{ $('"#input').val($('"#input').val().replace(/[^\d\.]/g,""));
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)