2011-11-09 62 views

回答

2

好吧,既然你標記爲「正則表達式」你的問題,regex你想是這樣的:

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

或者,如果你想使最初的「0」可選:

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

至於如何使用,好吧,如果你show the code you've got so far我可以告訴如何適應它...

3

嘗試:

<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> 
+2

您需要確認該值確實是一個數字,並檢查最小值。 (並且請不要使用「超出範圍」等錯誤消息,而不會說明範圍是什麼。) – nnnnnn

0

你有一對夫婦的選擇。使用鍵盤的用戶喜歡手動輸入文本,因此最好在屏幕上提示輸入的值應該從'01'到'15'。讓用戶在提交表單時輸入他們想要的任何內容並進行驗證。

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

因此,找出你的用戶想要什麼,然後執行它。客戶端驗證都是爲了讓用戶的生活更美好,它不是強迫他們做你想做的事的方式 - 這就是服務器端驗證的目的。 :-)

0

下面是這個有點脆,但完整的解決方案:

在這種情況下,你有一個文本輸入測試用的ID:

<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,檢查它是否大於5的只要第一個數字是1.

+0

這裏是一個jsfiddle,演示了它如何工作:http:// jsfiddle。網絡/ yAaW4/1/ – Jesse

+0

感謝所有你們的回覆。選擇列表不是一種選擇(對我來說,wud也很容易)。謝謝傑斯,這與我正在尋找的一個接近。但是,我不想在輸入中允許使用字母字符,只允許數字。你能幫我在這段代碼中實現它嗎?再次感謝。 – Roheryn

+0

這不允許任何不是數字的輸入 - 您可以輸入它,但只要釋放密鑰,它就會被刪除。所以它已經應該爲你的目的工作。試試jsfiddle,看看它是如何工作的! – Jesse

2

一個示例,爲什麼不允許用戶只輸入數字?試試這個

<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> 
+0

如果用戶通過拖放或從剪貼板輸入非數字數據會怎麼樣? – nnnnnn

+0

@nnnnnn多數民衆贊成在偉大的沒想到它所以我的答案有一個限制感謝您的評論 – niko

+0

@nnnnnn更新了答案我猜這應該克服限制嗎? – niko

相關問題