2011-03-04 28 views
0

我有一个HTML格式的文本类型的字段'sessionid'。我希望用户只输入1-12范围内的数字,不再输入。如果输入0或13 e.t.c,则返回错误。使用javascript指定要在数字字段中输入的数字范围

这里的HTML表单

Session Id 
      </td> 
      <td> 
      <input type="text" name="session id" /> 

Thanks.Please帮助。

+1

你有试过自己的东西吗?如果是的话,你可以发布你尝试过的吗?如果没有,请尝试。此外,请尝试[搜索](http://encrypted.google.com/search?q=javascript+limit+number+range)。 – Albireo 2011-03-04 11:47:46

+0

当我知道这一切都告诉新手去寻找并寻找它时,我喜欢它,他做到了,他来到了这里! – gettingThereSlowly 2014-01-31 13:10:39

回答

1

最简单的方法将使用一个选择栏

<select name="number-chooser"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">Three</option> 
    <option value="4">4</option> 
</select> 

这是罚款少的空间,但如果你要大了很多REGEXP是你的朋友。

+0

谢谢。我认为对于我的情况'选项值'可能更合适,因为范围很小。感谢@ Tunca对regxp完全一样。 – watkib 2011-03-07 05:38:57

1

您可以使用正则表达式。

http://www.javascriptkit.com/javatutors/re.shtml

http://www.regular-expressions.info/numericranges.html

 <script language="JavaScript1.2"> 
function checkpostal(){ 
var regexp=/^([1-9]|10|11|12)$/ //regular expression 
if (document.myform.sessionid.value.search(regexp)==-1) //if match failed 
alert("wrong input") 
} 
</script> 

<form name="myform"> 
<input type="text" name="sessionid"> 
<input type="button" onClick="checkpostal()" value="check"> 
+0

'regxp'从来不知道这一点。谢谢。 – watkib 2011-03-07 05:39:35

+0

你可以选择这个作为你的答案:) np – 2011-03-07 07:11:11

5

尝试将数字转换为int:

<script type="text/javascript"> 
    function checksession(sess){ 
     var i = parseInt(sess); 
     if(isNaN(c) || c < 1 || c > 12){ 
     alert("Invalid session id!"); 
     } 
    } 
</script> 

对于现代的浏览器,我建议使用HTML5 number输入类型:

<input type="number" name="sessionid" min="0" max="12" > 
+0

@chilborg我们如何测试这个功能,看看浏览器是否支持它? – 2011-03-04 12:26:38

+1

使用Modernizr库或阅读本教程:http://diveintohtml5.org/detect.html#input-types – chiborg 2011-03-04 12:32:03

+0

好的。感谢上面的代码。 – watkib 2011-03-07 05:37:25