2013-04-09 109 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