2015-02-23 124 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; 


}