2011-06-15 77 views
1

我是jQuery的新手,如果此問題非常基本,我會aplogize。清除錯誤消息或使用jQuery驗證插件重置驗證

我正在使用bassistance的Valiation插件來驗證一個簡單的表單。其中一個文本字段是強制性的 - 所以我設置了所需的標誌在規則和相應的消息消息。我的問題是,一旦驗證啓動,即使該字段爲空(即,如果用戶刪除字段的內容以從頭開始),我所設置的錯誤消息也會顯示。無論如何清除錯誤信息或重置驗證,如果該字段變空了?我試圖使用resetForm(),但看起來像它仍然驗證時不能使用它。下面是部分代碼:功能)

var validator = $("#form1").validate({ 
    rules: { 
     fname: { 
      required: true, 
      remote: 'http://localhost/check_name.php' 
     } 
     }, 
    messages: { 
     fname: { 
      required: "Enter a valid jobname. eg: 99999_Disney", 
      remote: "Name already exists"; 
        } 

       } 
    }); 

感謝您的幫助

$(文件)。就緒(({

+0

我解決了這個問題。不知道這是否是最優雅的方式,但它的工作原理。我必須以某種方式清除場地的無效狀態。我嘗試了'resetForm()',但沒有奏效。最後我使用了這樣的'{validator.resetForm(); (「#ID」)。rules(「remove」,「minlength required」);} – samba 2011-06-19 13:09:00

回答

1

我解決了這個問題。不知道這是否是最優雅的方式,但它的工作原理。我必須以某種方式清除場地的無效狀態。我試過resetForm(),但沒有奏效。最後,我用這樣的:

if ($("#ID").val()=="") { 
       validator.resetForm(); 
       $("#ID").rules("remove", "required minlength"); 
     } 

,並根據需要使用添加這些規則回到ID:

$("#ID").rules("add", { 
          required: true, 
          minlength: 5,  
          messages: {//messages 
          },        
       }); 
0

你可以嘗試使用驗證方法,像這樣:

jQuery.validator.addMethod("ValReqJobName", valReqJobName, "Enter a valid jobname."); 

,然後在規則對象,其中 「fname」 下,只需添加 「ValReqJobName:真」。

在「valReqJobName」函數中,您可以允許該字段爲空,或者添加您想要的任何自定義邏輯。

+0

感謝您的幫助。我嘗試了你的想法,但我無法實現它,我覺得我的邏輯是有缺陷的。以下是我想要實現的內容:我希望該字段是必需的或必填的,但如果該字段只是空白,則不會顯示錯誤。插件開始驗證字段後,它始終顯示「required」消息 - 即使字段爲空,字段也沒有焦點。所以我寫了這樣的事情,但它是有缺陷的: – samba 2011-06-15 21:08:31

+0

'jQuery.validator.addMethod( 「namereq」, 功能(jname){ \t VAR focusflag = FALSE; \t jname.focus(函數(){ \t \t \t focusflag = TRUE; \t} \t jname.blur(函數(){ \t \t \t focusflag = FALSE; \t \t} \t如果((focusflag == TRUE)&&(jname。長度== 0)) { return true; } 否則返回false; }, 「不爲空」。 );'你可以看看這個嗎? – samba 2011-06-15 21:24:49

+0

我道歉,我不知道如何發表評論部分的代碼 – samba 2011-06-15 21:27:55