我有一個表單正在驗證與Jquery's Validation Plugin,我需要一種方法,至少有2個驗證通過Ajax在同一個領域...使用2x遠程方法的單個字段的JQuery驗證插件
例如:我有一個名爲Login的字段,它接受用戶名或電子郵件,我需要驗證它是否是數據庫中的現有電子郵件,或者它是數據庫中的現有用戶名,返回不同的消息並執行2個不同的消息URL來做這些驗證。
是否有不同的消息和URL調用2個不同的遠程方法,或者我應該添加2個基於AJAX同步調用的新方法嗎?
編輯
好吧,也許我應該說我爲什麼要叫2種不同的遠程方法或創建2 AJAX同步調用的原因:
的問題是,我使用Zend和我做一個可以驗證服務器端(通過PHP)和客戶端(通過Jquery Validate,由原始的Zend Validators擴展的PHP類創建)的錯誤的系統。
例
class Esytek_Form_JqueryValidator_NotEmpty extends Zend_Validate_NotEmpty implements Esytek_Form_JqueryValidator_Interface {
public function elementSetOptions(Zend_Form_Element $element){
$element->setRequired(true);
}
public function getJqueryCode(){
return 'required: true,';
}
public function getJqueryMessage($mensagem){
foreach ($this->_messageVariables as $ident => $property) {
$mensagem = str_replace("%$ident%", (string) $this->$property, $mensagem);
}
return 'required: "<br>'.$mensagem.'",';
}
public function getNewJqueryFunction(){
return null;
}
...
}
Esytek_Form_JqueryValidator_Interface
interface Esytek_Form_JqueryValidator_Interface extends Zend_Validate_Interface{
public function elementSetOptions(Zend_Form_Element $element);
public function getJqueryCode();
public function getJqueryMessage($mensagem);
public function getNewJqueryFunction();
}
還有另一類是往大了放在那裏,但是,總之,它是所有調用每個Jquery的驗證的方法,彙總所有在一個字符串中的JQuery代碼,然後在表單中,我們應該調用一個方法來寫入運行驗證的jquery代碼。
在這種情況下,我想做一個類,可以在一個字段中生成多種類型的ajax驗證,以支持在輸入字段的Ajax驗證中可能發生的所有可能情況......換句話說,我需要類似的東西:
public function getNewJqueryFunction(){
return array ('AjaxValidation_'.$count=>'$.validator.addMethod("tel_format"+'.$count.',
function(value,element) {
//Ajax call of URL
}," ");'
);
}
或者類似的東西Esytek_Form_JqueryValidator_NotEmpty,可以在一個領域實現多個遠程方法,這樣我就可以使用JqueryValidator任何Ajax調用情況。
這樣,我的問題是「什麼是最好的方法,我怎麼能在jquery的代碼中做到這一點?」
問題是我正在使用Zend,我正在做一個系統,可以驗證服務器端(通過PHP)和客戶端上的錯誤(通過Jquery驗證,由PHP類實時創建來自Zend的原始驗證器)。 在這種情況下,我想要做一個類,可以在一個字段中生成多種類型的ajax驗證,以支持在輸入字段的Ajax驗證中可能發生的所有可能情況...... –
我會將您的答案作爲因爲經過一番認真的思考,我認爲你是對的。如果我製作了一個允許用戶爲一個字段進行多個AJAX調用的系統,那麼對於服務器來說,請求會更加重載,並且只需要一個url和發送給它的不同參數即可完成。 –