0

我有一个Price文本字段。

我只想要其中的整数和浮点值。

我已经完成了整数。但它不接受浮点值,例如:3110.6

这是我的代码演示

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">
4

4 回答 4

2

试试这个 演示

 $('#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
        });
于 2013-10-31T07:06:02.207 回答
1

只需使用这个:

<input name="price" type="number" id="price">

并删除您的 JavaScript 代码。

于 2013-10-31T07:07:33.180 回答
1

试试正则表达式

/^[+-]?\d+(\.\d+)?$/

只需测试 onchange 事件的输入值。

于 2013-10-31T07:09:03.530 回答
0

TRy演示点或句点的键码为 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

于 2013-10-31T07:10:37.493 回答