jQuery formValidator表單驗證插件常見有關問題


jQuery formValidator表單驗證插件常見問題

  

  1. 如何實現一個控件,根據不同的情況,實現不同的控制?
  2. 一個頁面上我有幾個tab頁,如何實現每個Tab頁上的控件單獨校驗?
  3. 我采用的頁面上文字問題的方式,點提交的時候,有校驗未通過的,除了文字提示外,還可以再彈出窗口提示嗎?
  4. 所有校驗通過后,我還要再做別的判斷可以嗎?我自己的判斷沒有通過可以中斷提交嗎?
  5. 我有一組的checkbox(radiobutton)如何設置校驗?
  6. 我有2個表單元素,任意一個元素輸入東西就算驗證通過,如何寫代碼?比如要求輸入中文名字和英文名字任意一個即算校驗通過。
  7. 一個表單元素校驗通過了,但是我想額外再進行其它的校驗,出錯要自定義錯誤,如何寫代碼?
  8. 如何讓賦了初始值的表單元素默認校驗通過
  9. ajaxValidator校驗,離開焦點的時候,馬上點擊提交按鈕,這個時候服務器還沒有返回怎么辦?
  10. 我想在表單沒有校驗通過的時候,彈出第一個沒有校驗通過元素的錯誤信息,如何實現?
  11. 剛打開頁面的時候我不想顯示onshow的狀態,如何實現這種功能
  12. 在A條件下,某個控件是不檢驗的,在B條件下,這個控件又是檢驗的,如何實現?
  13. inputValidator校驗方式,我想進行更精確的提示,如何寫?也就是比最小值小,比最大值大,分開提示。
  14. 如何實現自動注冊pageIsValid函數?每次都要自己寫太麻煩了。
  15. 在使用ajaxValidator的時候,服務器端無法獲得控件的值,每次都是空,怎么回事?
  16. 自動構建提示層功能開啟后,發現定位不准確這么辦?
  17. 為什么報$.formValidator無效的腳本錯誤。
  18. inputValidator除了判斷長度外,能不能再對左邊空格、右邊空格進行判斷?
  19. inputValidator驗證長度的時候,能把全角字符當做一個長度來驗證嗎?
  20. 用戶輸入正確才能離開焦點,如何設置?
  21. 如何設置成調試模式?即驗證成功后,不提交數據。

  1. 如何實現一個控件,根據不同的情況,實現不同的控制?[top]

  你只需要在你的不同種情況下,重新設置你的。例如:

  if(條件)
    $("#id").formValidator({配置1}).inputValidator({配1});
else
    $("#id").formValidator({配置2}).inputValidator({配2});

  2. 一個頁面上我有幾個tab頁,如何實現每個Tab頁上的控件單獨校驗?[top]

  每個Tab頁上需要校驗的控件,你在寫的時候,顯式的聲明組號
  $.formValidator.initConfig({validatorgroup:"1"});
  $.formValidator.initConfig({validatorgroup:"2"});
  再在formValidator里顯式的聲明組號validatorgroup,例如:
  $("#id").formValidator({validatorgroup:"2"...}).inputValidator({...});

  3. 我采用的頁面上文字問題的方式,點提交的時候,有校驗未通過的,除了文字提示外,還可以再彈出窗口提示嗎?[top]

  這個問題很簡單,你只要設置改組的全局配置,
jQuery.formValidator.initConfig({onerror:function(){alert("有部分校驗沒有通過,請看頁面具體提示");}})

  4. 所有校驗通過后,我還要再做別的判斷可以嗎?我自己的判斷沒有通過可以中斷提交嗎?[top]

  同樣很簡單,你頁只需設置該組的全局配置,
jQuery.formValidator.initConfig({onsuccess:function()
{
    if(你的額外判斷失敗)
        return false;
    else
        return true;
}})

  5. 我有一組的checkbox(radiobutton)如何設置校驗?[top]

  你只需在該組的第一個checkbox上設置校驗信息即可,具體請參考demo1里的范例
1、如果你該組的第一個控件的ID ,你可以這么寫:
$("sex_1").inputValidator({...})
2、如果你只知道該組的name,你可以這么寫:
$("input:check[@name='sex']").inputValidator({...})

  6. 我有2個表單元素,任意一個元素輸入東西就算驗證通過,如何寫代碼?比如要求輸入中文名字和英文名字任意一個即算校驗通過。[top]

  $("#name_cn,#name_en").formValidator({tipid:"IMTip",onshow:"請填寫任一種名字)",onfocus:"請請填寫任一種名字。",oncorrect:"輸入正確!"}).functionValidator({fun:allEmpty});

  function allEmpty(val,elem) 

return ($("#name_cn").val()=="" && $("#name_cn").val()=="") '如果想和客戶在線洽談,請至少填寫一種IM軟件帳號!':true; 
}

  7. 一個校驗組校驗通過了,但是我想額外再進行其它校驗,出錯要自定義錯誤,如何寫代碼?[top]

  $("#ewjy").formValidator({
  onshow:"無論你輸入什么,都會提示你額外校驗出錯,錯誤信息自定義",
  onfocus:"至少輸入一個字符",
  oncorrect:"你怎么可能輸入正確了,難道是bug ",
  ).inputValidator({min:1,onerror:"這里至少要一個字符,請確認"}).functionValidator({
if(額外校驗失敗) 
    return "額外校驗失敗的錯誤信息";
else 
    return true;
});

  8. 如何讓賦了初始值的表單元素默認校驗通過[top]

  $("#xueli").formValidator({onshow:"請選擇你的學歷",onfocus:"學歷必須選擇",oncorrect:"謝謝你的配合",defaultvalue:"b"}).inputValidator({onerror: "你是不是忘記選擇學歷了!"}).DefaultPassed();

  9.ajaxValidator校驗,離開焦點馬上點擊提交按鈕,這個時候如果服務器還沒有返回數據怎么辦?[top]

  新版本的ajaxValidator提供了一個配置參數buttons(你點提交的按鈕(組)jQuery對象),如果你觸發了ajax校驗,buttons里對應的按鈕就會灰掉,一直等待服務器返回數據為止。例如:
$("#test1").formValidator({...}).inputValidator({...}).ajaxValidator({
  url : "Default.aspx",
  datatype : "json",
  success : function(data){...},
  buttons: $("#button_id"),
  error: function(){alert("服務器沒有返回數據,可能服務器忙,請重試");},
  onerror : "該用戶名不可用,請更換用戶名重新",
  onwait : "正在對用戶名進行合法性校驗,請稍候..."
});

  10. 我想在表單沒有校驗通過的時候,彈出第一個沒有校驗通過元素的錯誤信息,如何實現?[top]

  onerror有2個參數:第一個“第一個沒有校驗通過元素的錯誤信息”;第二個“第一個沒有校驗通過元素對象”;代碼如下設置:
jQuery.formValidator.initConfig({onerror:function(msg){alert(msg);}})

  11. 剛打開頁面的時候我不想顯示onshow的狀態,如何實現這種功能?[top]

  如果onshow,onfocus,oncorrect,onerror的內容為空,將不顯示該提示內容

  12. 在A條件下,某個控件是不檢驗的,在B條件下,這個控件又是檢驗的,如何實現?[top]

  if(A條件)
  {
    $("#sfzh").attr("disabled",true).unFormValidator(true); //解除校驗
  }
  else
  {
    $("#sfzh").attr("disabled",false).unFormValidator(false);//恢復校驗
  }

  13. inputValidator校驗方式,我想進行更精確的提示,如何寫?[top]

  inputValidator校驗方式提供了2個屬性,分別為onerrormin和onerrormax.
  onerrormin:當用戶輸入的值比min屬性小的時候的錯誤提示
  onerrormax:當用戶輸入的值比max屬性大的時候的錯誤提示
  原onerror屬性:當onerrormin或onerrormax不存在的時候,用該屬性來提示錯誤

  14. 如何實現自動注冊pageIsValid函數?每次都要自己寫太麻煩了?[top]

  自動注冊$.formValidator.pageIsValid()函數,為initConfig添加formid屬性,表示表單ID號。
  如果formid為空,必須按照老的方法自行判斷。
  適用環境:如果你只有一個校驗組,而且利用表單的submit來提交,你可以配置這個formid參數。
  例如:$.formValidator.initConfig({formid:"form1",onerror:function(msg){alert(msg)}});

  15. 在使用ajaxValidator的時候,服務器端無法獲得控件的值,每次都是空,怎么回事?[top]

  請看更新記錄
  2008/1/22 23:58:57 jQuery formValidator 1.1.2 ver
  1、為AjaxValidator添加一個addidvalue屬性(是否自動添加id和值到url參數后面)
  為了修復AjaxValidator在配置信息的時候,取不到運行時候值的bug
  插件將自動在url后面自動添加,形式為"id=value"的網頁參數
  在服務器端,你可以通過Request.querystring["id"]來取值
  具體演示請看demo1里的用戶名輸入和Default.aspx

  2008/3/14 12:16:00 jQuery formValidator 2.2 ver
  2、AjaxValidator校驗方式,將自動再增加一個參數到請求的地址后面"clientid=觸發校驗的表單ID"。
  如果你是一個jQuery集合做校驗,如果用到了AjaxValidator校驗方式,在服務器端,你無法知道觸發校驗的是哪個   表單元素,所以在請求的地址后面追加"clientid=觸發校驗的表單ID"。

  你說的問題就是"在配置信息的時候,取不到運行時候值的bug",你可以參考demo1里用戶名的寫法

  16. 自動構建提示層功能開啟后,發現定位不准確這么辦?[top]

  為formValidator函數添加屬性:tipcss,用於定位自動提示層。該屬性為標准的css屬性申明。
  例如: tipcss:{"top":"1px","left":"20px"}。請注意屬性名和值都必須帶引號

  開啟自動構建提示層的情況下,原tipid屬性表示相對定位的目標控件的ID號
  關閉自動構建提示層的情況下,原tipid屬性的意義不變,表示提示層的ID號

  17. 為什么報$.formValidator無效的腳本錯誤?[top]

  1. 請先檢查是否正確引用了插件的腳本
  2. 插件腳本是UTF-8編碼的,如果你的頁面用其它的編碼方式,則在引用腳本的時候要顯式指明腳本編碼方式
    <script src="formValidator.js" type="text/javascript" charset="UTF-8" $amp;>amp;$lt;/script>

  18. inputValidator除了判斷長度外,能不能再對左邊空格、右邊空格進行判斷?[top]

  1. 在新的版本3.1里,為inputValidator設置了empty屬性,用於設置控件文本值是否允許兩邊為空
  2. 看參看demo1里的密碼控件。

    $("#password1").formValidator({onshow:"請輸入密碼",onfocus:"密碼不能為空",oncorrect:"密碼合法"}).inputValidator({min:1,empty:{leftempty:false,rightempty:false,emptyerror:"密碼兩邊不能有空符號"},onerror:"密碼不能為空,請確認"});

  19. inputValidator驗證長度的時候,能把全角字符當做一個長度來驗證嗎?[top]

  initConfig有個屬性:wideword,表示是否把全角字符當做2個長度處理,默認為true。

  20. 用戶輸入正確才能離開焦點,如何設置?[top]

  為initConfig增加forcevalid屬性;formValidator增加forcevalid屬性,表示是否一直輸入正確為止才允許離開焦點。 initConfig的forcevalid優先等級最高,即全局配置;而formValidator里的forcevalid是局部設置。
請見demo1郵箱字段的驗證。

  21. 如何設置成調試模式?即驗證成功后,不提交數據。[top]

  initConfig里有個屬性叫debug,默認false。如果你要調試代碼,你可以設置debug為true,校驗成功了,也不會提交表單。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM