2017-03-11 29 views
1

我在我的表单上有一个用户必须填写一个月的文本框,我想出了如何输入数字值,但我想让我的文本框接收1到12之间的数值。我已经尝试了最小,最大但他们都没有工作。接收月份的文本框输入验证

HTML代码:

<input type="text" class="form-control" name="Month" id="Month"onkeypress="return isNumber(event)"maxlength="2"placeholder="MM"required="required"> 

JavaScript代码:

<script type="text/javascript"> 
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; 
} 
</script> 
+0

我建议使用autoNumeric插件:HTTP:// WWW。 decorplanit.com/plugin/ –

回答

0

你应该放弃多余的JS,而使用<input type="number">min/max属性:

<input type="number" class="form-control" name="Month" id="Month" min="1" max="12" placeholder="MM" required>

+0

我可以在此输入中输入23,这是无效的 – aje

+0

输入时显示在输入周围的红色大框告诉您表单未正确填写,因此无法提交。 – gyre

0

下面是简单的代码来检查一个月,如果超过上限数量将会重置,并要求再次输入

function checkMonth(textbox){ 
 
    if(!(textbox.value > 0 && textbox.value <= 12)){ 
 
    textbox.value = ""; 
 
    textbox.focus(); 
 
    } 
 
}
<input type="number" id="month" min="1" max="12" onKeyUp="checkMonth(this)">