2010-04-09 138 views
0

我使用的jQuery validate()插件的一些形式,它很好。唯一的是我有一個需要特殊驗證過程的輸入字段。這是怎麼回事:jQuery驗證()特殊功能

jQuery驗證插件調用domready所有必填字段。

下面是輸入的例子:

<li> 
    <label for="nome">Nome completo*</label> 
    <input name="nome" type="text" id="nome" class="required"/> 
</li> 

這裏是我打電話給我的特殊功能:

<li> 
    <span id="sprytextfield1"> 
     <label for="cpf">CPF* (xxxxxxxxxxx)</label> 
     <input name="cpf" type="text" id="cpf" maxlength="15" class="required" /> 
     <span class="textfieldInvalidFormatMsg">CPF Inv&aacute;lido.</span> 
    </span> 
</li> 

,並在文件的底部,我稱之爲輕快功能:

<script type="text/javascript"> 
    <!-- 
     var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1","cpf"); 
    //--> 
</script> 

當然我會在頭部以及我的中調用Spry CSS和JavaScript文件。

當我只使用jQuery validate()插件並單擊發送按鈕時,頁面會自動回到第一個錯誤的輸入字段並顯示錯誤類型(不是數字,不是有效的電子郵件等)。

但是,使用這個新功能,這個「迴歸到第一個錯誤」功能不起作用,當然,因爲validate()函數看起來很好。

我已經添加了一個規則的另一種形式(約圖片上傳),它是這樣的:

$("#commentForm").validate({ 
    rules: { 
     foto34: { 
      required: true, 
      accept: "jpg|png|gif" 
     } 
    } 
}); 

現在的問題是,我怎麼可以添加特殊的驗證功能作爲整個驗證規則處理?

下面是該頁面更好地理解它:link text和專業是第一個:CPF。

我希望我很清楚地解釋我的問題。

回答

0

我會在我找到解決方案時回答我自己的問題。 我添加了JavaScript函數就像這個DOM準備開業前檢查我的公積金號(巴西ID號):

jQuery.validator.addMethod(
    "cpf", 
    function (valor){ 
     ... 
    }, 
    "CPF inv&aacute;lido" 
); 

,然後在這裏不用我的DOM準備:

$(document).ready(function(){ 
    $("#commentForm").validate({ 
     rules: { 
      campocpf: { 
       required:true, 
       cpf:true 
      }, 
     } 
    }); 
}); 

如果是這樣對一些巴西人感興趣,我可以展示CPF驗證的全部功能(使用我自己的編號進行檢查)。我還有另一個CNPJ號碼(巴西公司的號碼)。