2017-03-02 38 views
0

如果使用測試

$('input').on("input", function() { 
 
    if (isWhole($(this).val())) { 
 
    return false; 
 
    //$(this).removeAttr("style").removeClass("not"); 
 
    } else { 
 
    //$(this).css("border", "2px solid red").addClass("not"); 
 

 
    } 
 
}); 
 

 

 
function isWhole(n) { 
 
    return /^\d+$/.test(n); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input class="" type="text" id="" />

數字或字母,在這種OP我想使用戶僅輸入號碼輸入的值進行覈對。如果他們輸入字母,則不應該被允許,這意味着它不應該寫入輸入。

  1. 我用測試來測試輸入的數據是否是數字。
  2. 當我評論返回false時,我輸入字母邊框被添加。如果我輸入數字邊框被刪除這是我希望出來。
  3. 單獨使用return false嘗試它。我假設它不會讓輸入的信件顯示,但它仍然顯示。
  4. 如何不讓用戶輸入字母
+0

您可以使用''節省您使用js的額外支票的所有麻煩。 http://www.htmlgoodies.com/html5/tutorials/whats-new-in-html5-forms-handling-numeric-inputs-using-the-number-and-range-input-types.html#fbid=w1ah_NK1kue –

+0

@ClydeLobo我不喜歡使用數字類型輸入的updown鍵 – Pekka

回答

2

測試值,如果一個數允許它 - 或者在這種情況下,允許它的數字部分

$('input').on("input", function(e) { 
 
    var val = this.value; 
 
    if (!isWhole(val)) { 
 
    var num = parseInt(val); 
 
    $(this).val(isNaN(num)?"":num); 
 
    } 
 
}); 
 

 

 
function isWhole(n) { 
 
    return /^\d+$/.test(n); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input class="" type="text" id="" />

+0

問題爲什麼沒有我的代碼工作? – Pekka

+0

,因爲你不停止任何返回false – mplungjan

+1

我需要4分鐘打勾:) – Pekka

1

只需將任何非數字符號替換爲空字符串:

$('input').on("input", function(e) { 
 
    $(this).val($(this).val().replace(/[^\d]/, '')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" />

+0

問題爲什麼我的代碼沒有工作? – Pekka