2014-10-27 26 views
0

我想驗證兩個字段使用LiveValidation,但我似乎無法在任何地方找到任何東西。在線驗證互斥字段

我試圖讓一個或另一個必需的,這樣當一個填充在其他不需要是,但兩者可以要輸入的EmailMobile領域。

這裏是我的代碼:

<script type="text/javascript"> 
var Email = new LiveValidation("Email", {validMessage: "", onlyOnBlur: true}); 
Email.add(Validate.Presence, {failureMessage:"This field is required"}); 
Email.add(Validate.Format, {pattern: /^[ ]*([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})[ ]*$/i, failureMessage: "A valid email address is required"}); 

var mobile = new LiveValidation("mobile", {validMessage: "", onlyOnBlur: true});mobile.add(Validate.Presence, {failureMessage:"This field is required"}); 

var discussion = new LiveValidation("discussion", {validMessage: "", onlyOnBlur: true});discussion.add(Validate.Presence, {failureMessage:"This field is required"}); 
</script> 
+0

_Mutually Exclusive_將意味着當一個被填充時,另一個不被允許被填充。你的意思是「至少需要電子郵件或手機中的一種,或者兩者兼而有之」? – 2014-10-28 00:20:14

+0

只有一個是必需的,但他們可以給他們兩個,如果他們想 – AnthSav 2014-10-28 00:57:43

回答

0

我認爲你可以做到這一點,但你必須搞出了一點。使用LiveValidation庫,LiveValidation類下沒有函數返回一個常量或布爾值,指示字段已驗證。但是,您可以檢查驗證消息是否已添加到DOM。例如,說我有代碼, - >

var f1 = new LiveValidation('f1'); 
f1.add(Validate.Presence); 

現在,我想確保f1被驗證。爲此,我會得到字段'f1'的父元素,檢查類爲'LV_valid'的元素,然後從那裏開始。我的代碼看起來是這樣的, - >

function isValidated (field) { 
    var element = document.getElementById (field); 
    for (var i in element.parentElement.getElementsByClassName ("LV_valid")) { 
     ... 
    } 
} 

的問題是,有沒有確定,如果您檢索到的LV場是與場對應的一個方式。您可能必須編寫自己的驗證代碼或創建庫的修改版本。這就是我現在可以提供的所有輸入,希望它是有效的。

+0

非常感謝,我會試試這個 – AnthSav 2014-10-29 00:23:30