在我的表格上,有几天和一个月的字段。
我想对此进行简单的验证。一旦用户输入月份,即12,那么只有它才能进入下一个字段。
如果用户输入无效月份,则应再次关注月份字段,并应选择先前输入的文本。
我正在尝试使用.focus()
和.select()
jQuery函数,但它无法正常工作
这是小说验证只是为了测试,它可以是任何数字或任何标签。
<input type="text" id="days" /> <input type="text" id="month" />
jQuery("#days").blur(function(){
if(jQuery(this).val() == "12"){
alert("valid");
}
else {
alert("invalid");
jQuery(this).focus().select();
}
});
答案 0 :(得分:1)
使用此HTML
<label for="day">Day<input type="text" id="day" name="day"/></label>
<label for="month">Month<input type="text" id="month" name="month" maxlength=2/></label>
使用此JS
$('#day').live('keydown', function(e){
keyCode = e.keyCode || e.which;
if(keyCode == 9){
if($(this).val()<1 || $(this).val()>32){
e.preventDefault();
$(this).trigger('select');
console.log('error');
}
}
});
$('#month').live('keydown', function(e){
keyCode = e.keyCode || e.which;
if(keyCode == 9){
if($(this).val()<1 || $(this).val()>12){
e.preventDefault();
$(this).trigger('select');
console.log('error');
}
}
});
答案 1 :(得分:1)
模糊事件是否可能通过您的代码,然后通过关注导致模糊的任何事情来完成?如果代码从jQuery("#days").blur
更改为jQuery("#month").focus
,我可以让代码生效。
jQuery("#month").focus(function(){
if(jQuery(this).val() == "12"){
alert("valid");
}
else
{
alert("invalid");
jQuery("#days").focus();
}
});
答案 2 :(得分:1)
.focus()
和.select()
(对于你需要它们)不是jQuery函数,这些是简单的Javascript函数。
嗯,实际上它们在jQuery中有意义,它们用于事件绑定(分别用于onfocus和onselect)。
您可以通过以下方式致电:
this.focus();
this.select();
如果你需要“设置焦点在这个元素上”和“选择这个元素的内容”功能(这是纯JS,而不是jQuery)。
答案 3 :(得分:1)
$(function({
$('#days').attr("disabled", true);
});
$("#months").blur(function(){
if($(this).val()<1 || $(this).val()>12){
$(this).val() = "error, invalid month";
$(this).css('color', 'red');
$(this).focus();
$('#days').attr("disabled", true);
return;
}
else
{
$('#days').attr("disabled", false);
}
}
});