簡體   English   中英

Javascript或jQuery接受小於100的數字的文本字段

[英]Javascript or jQuery to accept numbers less than 100 for text field

在我的項目中,我有一個文本字段,我需要接受小於或等於100的值。在該文本字段中,如何通過javascript或jquery實現此目的。 不知何故,我設法只在文本框中接受數字,但是如何限制它不接受大於100的數字。

這是我嘗試僅接受數字的代碼

function isNumber(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    return true;
}

首先,您可以在HTML5中使用number類型,並將max屬性設置為100。

<input id="numberbox" type='number' max='100'>

這樣一來,您的瀏覽器便可以檢測提交時的時間是否超過100 但是,它不適用於舊版瀏覽器和某些智能手機。

或者,您可以這樣做:

<input type='text' maxlength='2' pattern='^[0-9]$'>

但是我覺得這個選擇太過分了。 但是,如果您想那樣做,則取決於您。

在jQuery中,您可以執行以下操作:

 $('#numberbox').keyup(function(){ if ($(this).val() > 100){ alert("No numbers above 100"); $(this).val('100'); } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type='text' id='numberbox'> 

也請驗證后端,只有足夠多的知識的人才能輕松繞過此操作。

檢查這個demo

另外,您必須限制text field的長度

像這樣

var fieldVal = document.getElementById('txtF').value;
//Suppose u want  number that is less than 100
if(fieldVal < 100){
    return true;
}
else
{
  //
}

使用jquery,您可以執行以下操作:

$('#my-field').blur(function() {
   if(parseInt($(this).val()) < 100) {
       $(this).val('');
   }
});

當用戶離開視場(視場失去焦點)時,將引發模糊事件。 然后,如果該值小於100,則進行檢查,並在必要時將其清空。

function isNumber(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    var str = String.fromCharCode(charCode);
    if (str>100)) {
        return false;
    }
    return true;
}

您可以使用fromCharCode它可以返回字符

請使用最大長度

maxlength="2" 

例如

<!DOCTYPE html>
<html>
<body>

<form action="demo_form.asp">
  PIN: <input type="text" name="pin" maxlength="2" size="30"><br>
  <input type="submit" value="Submit">
</form>

</body>
</html>

你可以這樣做:

$('yourElem').on('keydown', function(e){
    if(this.value > 100){
       alert('You have entered more than 100 as input');
       return false;
    }
});

maxlength屬性可以將數字限制為超過3位,因此您可以使用此限制:

maxlength="3"

但您需要按照上述建議進行js驗證,因為maxlength用戶仍然可以按要求輸入100多個。

嘗試這個:

<script type="text/javascript">
function fnc(value, min, max) 
{
    if(parseInt(value) < 0 || isNaN(value)) 
        return 0; 
    else if(parseInt(value) > 100) 
        return "Number is greater than 100"; 
    else return value;
}
</script>
<input type="text" name="textWeight" id="txtWeight" maxlength="5" onkeyup="this.value = fnc(this.value, 0, 100)"/>

連同您的代碼,您可以再添加一行以限制文本字段接受少於2個字符。

    if (charCode.length > 2) {
    return false;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM