2013-04-09 108 views
1

我在窗体中使用jQuery验证插件,并且当用户选择任何选项以立即显示错误时,我需要验证选择,现在我对输入和textareas使用了“onfocusout”选项,但显然在使用select时等待焦点不是好习惯。jQuery验证选择更改

如果有帮助的东西,这里就是我现在使用来验证我的形式代码:

$('form#cars').validate({ 
    onfocusout: function(e){ 
     this.element(e); 
    }, 
    errorElement: 'span', 
    errorClass: 'error help-inline', 
    highlight: function(element, errorClass, validClass){ 
     $(element).addClass(errorClass).removeClass(validClass); 
     $(element).closest('.control-group').addClass(errorClass); 
    }, 
    unhighlight: function(element, errorClass, validClass){ 
     $(element).removeClass(errorClass).addClass(validClass); 
     $(element).closest('.control-group').removeClass(errorClass); 
    }, 
    messages: { 
     'vehicle_city': 'Debes especificar la cuidad donde circula tu auto.' 
    } 
}); 

有人知道做我想做什么方法?有没有办法?

+0

您还没有显示您的HTML,解释了您的规则或目的。如果用户做出选择,应该显示什么错误?通常在选择时,由于您已经控制了数据的格式,唯一的验证是是否需要进行选择。 – Sparky 2013-04-09 20:17:22

+0

看到这个jsFiddle:http://jsfiddle.net/z75EZ/〜你期待什么不同? – Sparky 2013-04-09 20:27:37

+0

@Sparky我想在用户选择任何选项时立即验证该字段,而不是在用户提交表单时。 – 2013-04-10 15:17:05

回答

1
$('select').on("change", function(){ 
    var optionVal = $(this + " option:selected") 
}); 
+0

我想如果你在你的DOMQuery上设置一个范围,那就更好了。 'var optionVal = $(“option:selected”,this);' 或 'var optionVal = $(this).find(“option:selected”);' – fernandosavio 2013-04-09 17:36:10

+2

我不知道代码之间的关系你张贴和jQuery验证插件与我贴的代码。你能解释我吗?我也不知道'输入[type =“select”]','select' – 2013-04-09 18:18:09

+0

@cristiangrojas您将不得不将上述内容添加到您的验证脚本中作为验证的另一部分 – 2013-04-09 19:06:14