我目前正在处理年龄验证页面,我需要制作一个jQuery脚本来检查日期是否正确,转到下一个输入并验证用户。
//Age Verification
$('.inp .day, .inp .month, .inp .year').on('keyup', function () {
this.value = this.value.replace(/[^0-9\.]+/g, '');
});
$('.inp .day').on('keyup', function () {
if (this.value >= 32) {
this.value.replace(/[^0-9\.]+/g, '');
} if (this.value.length >= 2) {
$('.inp .month').focus();
}
});
$('.inp .month').on('keyup', function () {
if (this.value >= 13) {
this.value.replace(/[^0-9\.]+/g, '');
}
if (this.value.length >= 2) {
$('.inp .year').focus();
}
});
这就是我创建的内容,除了for day(if (this.value >= 32)
)和month(if (this.value >= 13)
)的两个if语句外,它的工作正常。
任何帮助都将不胜感激。
谢谢:)
答案 0 :(得分:2)
不应该
if (this.value >= 32) {
this.value.replace(/[^0-9\.]+/g, '');
是
if (this.value >= 32) {
this.value = 0;
我不知道> = 32的值是如何被要求做的不同于
$('.inp .day, .inp .month, .inp .year').on('keyup', function () {
this.value = this.value.replace(/[^0-9\.]+/g, '');
});
已经在做
了答案 1 :(得分:1)
试试这个:
$('.inp .day').on('keyup', function () {
if(this.value > 31)
{
this.value = "00";
}
else if (this.value.length >= 2) {
$('.inp .month').focus();
}
});
答案 2 :(得分:0)
试
//Age Verification
$('.inp .day, .inp .month, .inp .year').on('keyup', function () {
var $this = $this,
thisVal = $this.val().replace(/[^0-9\.]+/g, '');
$this.val(thisVal);
});
$('.inp .day').on('keyup', function () {
var $this = $this,
thisVal = $this.val();
if (thisVal >= 32) {
$this.val('');// or whatever it should be...31?
}else if (thisVal.length >= 2) {
$('.inp .month').focus();
}
});
$('.inp .month').on('keyup', function () {
var $this = $this,
thisVal = $this.val();
if (thisVal >= 13) {
$this.val('');// or whatever it should be...12?
}else if (this.value.length >= 2) {
$('.inp .year').focus();
}
});
答案 3 :(得分:0)
如果您希望在用户输入无效数据时该值为空,那么为什么不这样做:
$('.inp .day, .inp .month, .inp .year').on('keyup', function () {
this.value = ""; //Make it a blank string
});
$('.inp .day').on('keyup', function () {
if (this.value >= 32) {
this.value = ""; //Make it a blank string
} if (this.value.length >= 2) {
$('.inp .month').focus();
}
});
$('.inp .month').on('keyup', function () {
if (this.value >= 13) {
this.value = "";//Make it a blank string
}
if (this.value.length >= 2) {
$('.inp .year').focus();
}
});