У меня есть html <input>
и некоторый шаблон (например, -?\d*\.?\d*
значение с плавающей запятой).
Я не должен набирать несоответствующее значение.
Я сделал это следующим способомПодтвердить входное значение до того, как оно будет показано пользователю
jQuery.fn.numeric = function (pattern)
{
var jqElement = $(this), prevValue;
jqElement.keydown(function()
{
prevValue = jqElement.val();
})
jqElement.keyup(function(e)
{
if (!pattern.test(jqElement.val()))
{
jqElement.val(prevValue);
e.preventDefault();
}
prevValue = ""
})
};
Но в этом случае, значение показывается пользователю, а затем корректируется на нужное значение.
Это способ присвоить значение до того, как оно будет показано пользователю?
я могу использовать pattern
атрибут из html5
Это очень хорошо. http://jsfiddle.net/TJ29G/ – Ilya