2012-02-20 42 views
2

我用下面的驗證我的項目:http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/jQuery的直列形式驗證 - 隱場

我遇到了一些困難,與Chosen一起使用它(http://harvesthq.github.com/chosen/),它用一些div替換了默認的「select」標籤,並且隱藏了選擇標籤。

基本上這是非常相同的問題,在這裏描述:https://github.com/harvesthq/chosen/issues/473但它不應該真正地作爲選擇的問題,而是驗證者。

所以,問題是 - 有沒有簡單的解決方案,以使用驗證器來iclude隱藏字段?我嘗試刪除所有說明忽略隱藏字段的腳本源代碼部分,但這並不能解決問題。無論何時我提交表單,它都會驗證除隱藏字段以外的所有字段。

預先感謝任何幫助

回答

2

我使用「選擇prettifier」 jQuery腳本時,也有類似的問題這一點。而不是隱藏原來的選擇,正如你已經看到意味着jQuery驗證忽略它,我設置它的positionabsolute,並設置它的左側位置殷實的頁面:

.hidden-field { 
    position: absolute; 
    left: -9999px; 
} 

有可能是一個更優雅的解決方案儘管如此。

+0

這可能工作:) 要去檢查它現在。 – 2012-02-20 12:48:03

+1

曾爲 - tyvm :) – 2012-02-20 14:11:28

2

上述溶液不是一種理想的解決方案。如果回到上面引用的github問題,您會看到一個更好的解決方案,它不涉及「黑客攻擊」您正在使用的任何插件。

+0

感謝響應。確實,黑客並不完美 - 使用不同的解決方案來避免它。 – 2012-02-21 08:23:31

2

這裏的解決方案,我一直在案情終於走到some1需要它,以及:

function validateChosen(targetId){ 
if ($('#'+targetId).val()=='') { 
    valid=false; 
    $('#'+targetId+'_chzn').validationEngine('showPrompt', '* Field required','','topRight',true); 
    } else { 
    $("."+targetId+"_chznformError").fadeOut("normal",function(){ 
     $(this).remove(); 
    }); 
    } 
}