我需要限制用户输入,只允许一个整数或两个十进制数,限制从0
到99999.99
。
尝试使用脚本,但并非在所有情况下都成功。此外,这也应该适用于移动操作系统。
$('#txtamount').keydown(function (event) {
if (event.which == 8 || event.which == 9 || event.which == 37 || event.which == 38 || event.which == 46) {
//event.preventDefault();
return true;
}
alert('final' + event.which);
if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
return false;
event.preventDefault();
}
var text = $(this).val();
if ((text.indexOf('.') != -1) && (text.substring(text.indexOf('.')).length > 2)) {
return false;
event.preventDefault();
}
});
尝试使用以下东西,但不努力限制特殊字符。
http://jsfiddle.net/jquerydeveloper/LmHkD/
与其使用键码检测,不如使用正则表达式和 onchange,而不是键下。
$(document).ready(function () {
$('input[name="number"]').change(function (e) {
var valueEntered = $(this).val()
var regex = /^[0-9]{1,5}(.[0-9]{2})?$/
if (!regex.test(valueEntered)){
$(this).val(''); //set value to nil, consider also display message
}
});
});
我还会将输入类型修改为数字,而不是文本:
<input name="number" type="number" value=" " />
JSFiddle: http://jsfiddle.net/LmHkD/259/
请注意,这只是您入门,您可能需要针对您的确切场景更新正则表达式