2015-02-23 67 views
1

我想在文本框中只允许一个.,带退格键左右箭头。只允许带退格和左右箭头的浮点数

我发现此链接。

only allow numbers, backspace, delet, left arrow and right arrow keys in textbox

我addded在上面的代码中多了一个验证,从而使用户可以在文本框仅添加.,但它不工作。

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

回答

0

您可以使用您希望使用或不关键的一些修改下面的代码。

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; 
    } 
}); 
+0

你检查你的代码。在你没有应用doulble'.'的验证,也没有检查'.' keycode – 2015-02-23 06:46:32

+0

@AmitKumar正如我所说的,你必须做一些修改。我刚刚给了一个样本来通过。 – Balkrushn 2015-02-23 06:50:45

+0

然后你没有看到我的问题。我已经写了更多的代码,你的答案。 – 2015-02-23 07:10:13

1

我看到它的问题是,在线路,所述this是Window对象不是输入控制。

尝试增加一个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);'>

而且您的验证应该工作!

+0

如果这能解决您的问题,请添加为答案! – Arunster 2015-02-23 08:08:30

+0

现在工作吗? – Arunster 2015-02-25 07:08:16

1

功能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; 


}