2012-03-17 113 views
1

試圖讓jquery驗證以使用jqtransform。我看到問題 似乎是隱藏的選擇框。它不會將錯誤類添加到此元素 ,因此它不會繼續添加錯誤消息!如果我讓jqTransformHidden類 顯示:block;它可以工作,但是我的所有輸入和選擇都是可見的,當然我不想。選擇框不驗證,jqtransform jquery驗證

正如你所看到的,沒有添加錯誤類。

<select class="required jqTransformHidden" name="currency"> 
       <option value="">Choose Currency</option> 
       <option value="29">ANG - Netherlands Antilles, Guilders</option> 
      </select> 

回答

2

我有完全相同的問題,這就是我如何解決它。
我使用jQuery驗證除了選擇框以外的所有東西。一旦jquery驗證認爲我的表單有效,我爲選擇框設置了另一個自定義驗證。 你可以在selectHandler中檢查。

submitHandler: function(form){ 
    if(validateSelect()){ 
     form.submit(); 
    } 
}, 

然後你可以創建一個validateSelect函數來檢查你的選擇框。你可以使用jquery .val()

validateSelect = function(){ 
    if($('#my-select').val()==""){ 
     return false; 
    }else{ 
     return true; 
    } 
} 

更新:我已經找到了一個更簡單的解決方案!您可以強制jQuery驗證通過在驗證腳本的第218行將ignore: ":hidden",轉換爲ingnore: "",來檢查隱藏字段。這樣,每個轉換字段仍將被驗證。您也可以在自定義腳本中設置此更改,而不是插件腳本,但我不知道如何執行此操作。

0

我知道這是一個老問題,但對於那些誰是爲此而努力,這是我的解決方案:

對我來說,這似乎是使用ignore: ""沒有這樣的伎倆來選擇輸入。相反,隱藏隱藏字段與CSS display: none我以前position: absolute; top: -9999px; left: -9999px;

最簡單的方法是編輯jqTransform.css文件是這樣的:

.jqTransformHidden { 
    //display: none; 
    position: absolute; 
    top: -9999px; 
    left: -9999px; 
}