我使用以下函数进行数字验证,不允许特殊字符和字母表,工作正常。如果我将值复制并粘贴到文本框,则表示缺少值。
例如,我复制值 12-3456-789 并粘贴到验证文本框中,仅粘贴 1234567 而不是123456789
$( "input[type=text]" ).on("keyup", function() {
var o=$(this);
o.val(o.val().replace(/[^\d]/g,""));
});
答案 0 :(得分:0)
似乎工作,我也尝试复制粘贴你的测试字符串。 Fiddle
可能您的错误存在于HTML代码中!
HTML:
<input type="text" />
JS:
$( "input[type=text]" ).on("keyup", function() {
var o=$(this);
o.val(o.val().replace(/[^\d]/g,""));
});
答案 1 :(得分:0)
您的代码应该有效。正如@Kemal Fadillah建议的那样,如果您在输入中将maxlength
属性设置为9
,那么它将不起作用
<input type="text" maxlength="9" />
<强> Working Demo 强>
答案 2 :(得分:0)
仅check the Demo show you can remove maxlength on your input text feald
答案 3 :(得分:0)
Here is a example that works for both paste and keyup
$("[id$=textTest]").bind("focusout", function (e) {
$("[id$=textTest]").val($("[id$=textTest]").val().replace(/[^0-9]+/g, ""));
});
$("[id$=textTest]").bind("keyup", function (e) {
$("[id$=textTest]").val($("[id$=textTest]").val().replace(/[^0-9]+/g, ""));
});