簡體   English   中英

使用jQuery表單向導編寫自定義驗證

[英]Writing custom validations using jquery form wizard

我正在使用jquery表單向導 ,並想編寫自定義驗證規則。

我當前的問題是我想將字段驗證為URL,但是如果用戶忘記添加“ http://”前綴,我希望不要拒絕它,而是在服務器端添加前綴。

我目前正在使用url類進行此驗證,但不支持該選項。 要解決此問題,我想使用自定義正則表達式而不是url驗證器(基本上,只需檢查URL字段是否有句點並且長度至少為五個字符)。

我無法使jQuery-ui-form-wizard使用正則表達式或調用回調函數進行驗證。 注意-我想驗證每個步驟,而不僅僅是提交。

我在表單向導選項中添加了以下內容,並調用了我的回調-即使返回false,單擊“下一步”仍然會轉到下一頁:

remoteAjax: {
  "page1" : {
    url: "./validateWizard1",
    dataType: "json",
    beforeSend: function() {
      // This code is called before "page1" is turned.
      return false;
    },
    success: handleValidateSubmit
  }
}

我想設置一個自定義錯誤消息(以標准方式顯示在驗證插件中),或者重用URL消息。

實現此目標的最佳方法是什么?

這是jquery-form-wizard的作者Jan Sundman的回答(他要求我代替他發帖):

如果我正確理解了您的問題,那么您想在使用remoteAjax將請求發送到服務器之前,在beforeSend方法中進行驗證嗎?

如果我理解正確,那么您正在使用驗證插件來驗證輸入,但是url規則不支持您的需求嗎? 如果是這樣,您可以使用http://docs.jquery.com/Plugins/Validation/Validator/addMethod添加新方法,在其中可以使用regexp和任何您喜歡的方法。

也就是說,即使您返回false,向導中的beforeSend方法似乎也不會切斷ajax調用。 這是一個錯誤,在即將發布的版本中,我將做一個注釋來修復它。

要解決此問題,請嘗試改用beforeSubmit回調(由表單插件提供)。 例如:

remoteAjax: {
 "page1" : {
   url: "./validateWizard1",
   dataType: "json",
   beforeSubmit: function() {
     // This code is called before "page1" is turned.
     return false;
   },
   success: handleValidateSubmit
 }
}

我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM