2014-02-19 4 views
1

Я использую следующую функцию для числовая проверка, не допускающая специального символа и алфавит, она работала нормально. Если я скопирую и вставляю значение в текстовое поле, то значения отсутствуют.jquery числовая проверка не работает

Например, скопировать значение 12-3456-789 и вставить в текстовом поле проверки, вставленное только вместо 123456789

$("input[type=text]").on("keyup", function() { 
    var o=$(this); 
    o.val(o.val().replace(/[^\d]/g,"")); 
}); 
+0

Зачем вам нужен '[]'? – Itay

+2

Можете ли вы показать свой HTML? Полагаю, у вас есть атрибут 'maxlength', установленный на' 9' на вашем элементе 'input'. –

+0

@ Я не знаком с регулярным выражением – User

ответ

0

Кажется, работает, я попытался также авторские вставка тестовой строки. Fiddle

Возможно, ваша ошибка сохранилась в коде HTML!

HTML:

<input type="text" /> 

JS:

$("input[type=text]").on("keyup", function() { 
    var o=$(this); 
    o.val(o.val().replace(/[^\d]/g,"")); 
}); 
0

Ваш код должен работает. Как @Kemal Fadillah предложение, он не будет работать, если у вас есть maxlength атрибут установлен в 9 в вашем входе

<input type="text" maxlength="9" /> 

Working Demo

0
Here is a example that works for both paste and keyup 

Demo Fiddle

$("[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, "")); 
}); 
Смежные вопросы