只允许带有退格和左右箭头的浮点数

allow only float number with backspace and left and right arrow

本文关键字:左右 浮点数 许带      更新时间:2024-04-18

我想在文本字段中只允许一个.,带有退格、左右箭头。

我发现了这个链接。

只允许在文本框中使用数字、退格、删除、左箭头和右箭头键

我在上面的代码中又添加了一个验证,所以用户只能在文本字段中添加.,但它不起作用。

JS-

function validateQty(event) {
    var key = window.event ? event.keyCode : event.which;
if (event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 37 || event.keyCode == 39 ) {
    if($(this).val().indexOf('.') == -1)
        return true;
    else
        return false;
}
else if ( key < 48 || key > 57 ) {
    return false;
}
else return true;
};

JSFiddle

我看到的问题是,在if($(this).val().indexOf('.') == -1)行中,this是Window对象,而不是输入控件。

尝试向输入控件添加一个ID,并在代码中引用相同的ID作为:

function validateQty(event) {
    var key = window.event ? event.keyCode : event.which;
    if (event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 37 || event.keyCode == 39 ) {
    if($('#IdofInputControl').val().indexOf('.') == -1)
        return true;
    else
        return false;
    }
    else if ( key < 48 || key > 57 ) {
        return false;
    }
        else return true;
    };
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" ID="IdofInputControl" onkeypress='return validateQty(event);'>

你的验证应该有效!

函数isNumber(evt){
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57)&&(evt.which != 46 || $('#refAmount').val().indexOf('.') != -1)) {
        return false;
    }
    return true;

}

您可以使用以下代码,并对您想要使用或不想要使用的键进行一些修改。

jQuery("#YourSelector").keypress(function (evt) { 
     var charCode = (evt.which) ? evt.which : evt.keyCode;
     if (charCode != 46 && charCode > 31 && (charCode < 43 || charCode > 57)){
        return false;
     }else{ 
        return true;
     }
});