【发布时间】:2011-07-22 13:21:13
【问题描述】:
我希望一个文本字段只包含数字和一些控制键,并且数字应该正好是四位数字,不少于不少。我的验证码是
function checkValidInput()
{
$(".validateYearTextBox").keydown(function(event)
{
// Allow only delete, backspace,left arrow,right arraow and Tab
if (
event.keyCode == 46 //delete
|| event.keyCode == 8 //backspace
|| event.keyCode == 37 //leftarow
|| event.keyCode == 39 //rightarrow
|| event.keyCode == 9 //tab
)
{
// let it happen, don't do anything
}
else {
// Ensure that it is a number and stop the keypress
if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode <96 ||event.keyCode > 105) ) {
event.preventDefault();
}
}
});
$(".validateYearTextBox").keyup(function(event)
{
var val = $(this).val();
if (val.length > 4){
alert ("Max length is 4");
val = val.substring(0, valore.length - 1);
$(this).val(val);
$(this).focus();
return false;
}
});
}
在这里,我的第一个验证有效,但我的发送验证无效。
我在我的 aspx 页面中像这样调用这个验证函数
<script type="text/javascript">
$(document).ready(function(){
checkValidInput();
}
</script>
出了什么问题?
【问题讨论】:
-
“不工作”是什么意思?您必须包括真实的细节,否则回答者只是在猜测。在什么条件/输入下,当你
alert(val.length)在你的if之前会发生什么,你期望发生什么,在你的keydown事件的每一行上实际发生什么等等等等? -
@p.campbell:对不起,让我稍微修正一下我的代码,然后看看并提出建议,我会给出确切的细节,别担心。
标签: javascript jquery validation