簡體   English   中英

HTML文本框:如何將輸入值限制為僅小於15的數字

[英]Html textbox: how to restrict input values to only numbers less than 15

我只想在我的文本字段中輸入輸入值01,02,...,09,10,11,12,..,15。 請提供有關如何實現此目標的示例代碼,以幫助新手。 (尚未使用HTML5)

嘗試:

<script type="text/javascript">
function validateForm()
{
var x=document.forms["myForm"]["YourTextBoxID"].value;
var y = parseInt( x  ,  10  )
var i=15;
if (y>i)
  {
  alert("Out of range");
  return false;
  }
}
</script>

好吧,由於您用“ regex”標記了問題,因此所需的正則表達式是這樣的:

/^(0[\d]|1[1-5])$/

或者,如果要使初始的“ 0”為可選:

/^(0?[\d]|1[1-5])$/

至於您如何使用它,好吧,如果您顯示到目前為止的代碼,我可以建議如何適合它。

一個示例,為什么不允許用戶僅輸入數字? 試試看

 <HTML>
   <HEAD>
     <SCRIPT language=Javascript>
       <!--
         function isNumberKey(evt) ' Allow user to enter only numbers
          {
            var charCode = (evt.which) ? evt.which : event.keyCode
             if (((charCode > 47) && (charCode < 58 ) ) || (charCode == 8))
                   return true;

              return false;            
          }

          function isless() ' do not submit if greater than 15
           {
             var num = document.getElementById('num_txt').value
             var y  = parseInt( num  ,  10  ) 
             if ( y > 15 )
              return false;

           }

        //-->
     </SCRIPT>
   </HEAD>
   <BODY>
   <FORM onsubmit="isless()" action="some.php">
   <INPUT  id="num_txt" onkeypress="return isNumberKey(event)" type="text" >
   </FORM>
   </BODY>
 </HTML>

我認為您可以使用comboBox ..一些代碼開始:

<select >
<option> 01 </option>
<option> 02 </option>
</select>

http://www.w3schools.com/tags/tag_select.asp

您有兩種選擇。 使用鍵盤的用戶喜歡手動輸入文本,因此對於他們來說,最好在屏幕上提示輸入的值應為'01'到'15'。 讓用戶輸入他們想要的任何內容,並在提交表單時對其進行驗證。

另一個選擇是使用帶有所需值的選擇元素,或使用一系列單選按鈕。 這完全取決於您的用戶以及所收集的數據(例如日期,計數,年齡等)。

因此,找出您的用戶想要什么,然后實施它。 客戶端驗證只是為了讓用戶生活得更好,而不是強迫他們按照自己的意願做事的方式,這就是服務器端驗證的目的。 :-)

這是一個有點脆弱但完整的解決方案:

在這種情況下,您將輸入一個文本,其ID為test:

<input type="text" id="test"/>

這是您的腳本:

var numbers = [48,49,50,51,52,53,54,55,56,57];

$("#test").bind("keyup",function(e){
    var num = numbers.indexOf(e.which),
        t = $(e.target),
        v = t.val(),
        len = v.length;
    if(len > 2){
        t.val(v.match(/(.+?).$/)[1]);
    } else {
        if(v[0] == 1){
            if(v[1] && v[1] > 5){
                t.val(15);
            }
        } else if(v[0] != 0) {
            t.val("");
        }
    }
});

基本上,我將所有字母的鍵代碼分配給數組的相應索引。

然后,在按下的每個鍵上,我們找出它是什么鍵,如果它在位置0,則檢查它是0還是1。

如果它在位置1,則只要第一個數字為1,就檢查它是否大於5。

暫無
暫無

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

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