我有价格的文字字段。
我只想要Integer和Float值。
我做了整数。但它不接受Float值,如:3110.6
这是我的代码DEMO
JS:
$(document).ready(function () {
$("#price").keydown(function (event) {
// Allow only backspace and delete
if (event.keyCode == 46 || event.keyCode == 8) {
// let it happen, don't do anything
} else {
// Ensure that it is a number and stop the keypress
if (event.keyCode < 48 || event.keyCode > 57) {
event.preventDefault();
}
}
});
});
HTML:
<input name="price" type="text" id="price">
答案 0 :(得分:2)
试试这个demo
$('#price').keypress(function(event) {
if(event.which == 8 || event.which == 0){
return true;
}
if(event.which < 46 || event.which > 59) {
return false;
//event.preventDefault();
} // prevent if not number/dot
if(event.which == 46 && $(this).val().indexOf('.') != -1) {
return false;
//event.preventDefault();
} // prevent if already dot
});
答案 1 :(得分:1)
只需使用:
<input name="price" type="number" id="price">
删除您的JavaScript代码。
答案 2 :(得分:1)
尝试正则表达式
/^[+-]?\d+(\.\d+)?$/
只需测试onchange事件的输入值。
答案 3 :(得分:0)
TRy Demo点或句点具有键码190
$(document).ready(function() {
$("#price").keydown(function(event) {
// Allow only backspace and delete
if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 190 ) {
// let it happen, don't do anything
}
else {
// Ensure that it is a number and stop the keypress
if (event.keyCode < 48 || event.keyCode > 57 ) {
event.preventDefault();
}
}
});
});
但最好在http://jqueryvalidation.org/使用jquery验证器插件,因为你不必自己检查。
对于jquery版本,请参阅JQUERY VALIDATION