Html文本框:如何将输入值限制为仅小于15的数字

时间:2011-11-09 06:24:29

标签: javascript html regex

我希望在我的文本字段中只允许输入值01,02,...,09,10,11,12,..,15。请帮助新手提供有关如何实现此目的的示例代码。 (尚未使用HTML5)

6 个答案:

答案 0 :(得分: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>

答案 1 :(得分:2)

好吧,既然你用“正则表达式”标记了你的问题,你想要的regex是这样的:

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

或者如果你想让初始的“0”可选:

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

至于你如何使用它,好吧,如果你show the code you've got so far我可以建议如何适应它......

答案 2 :(得分: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>

答案 3 :(得分:0)

我认为你可以使用comboBox ..一些代码来开始:

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

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

答案 4 :(得分:0)

你有几个选择。使用键盘的用户喜欢手动输入文本,因此最好在屏幕上提示输入应具有从“01”到“15”的值。让用户输入他们想要的任何内容,并在提交表单时对其进行验证。

另一种选择是使用具有所需值的select元素或一系列单选按钮。这一切都取决于您的用户,您收集的数据(例如日期,计数,年龄等)。

请找出您的用户想要的内容,然后实施它。客户端验证就是为用户提供更好的生活,它不是强迫他们做你想做的事情的方式 - 这就是服务器端验证的目的。 : - )

答案 5 :(得分:0)

这是一个有点脆弱但完整的解决方案:

在这种情况下,您的文本输入的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.