2017-06-06 52 views
0

這兩個字段中至少有一個是必填字段,如果字段1已填寫或字段2已填寫,表單已發送,則需要填寫其中一個字段。我試圖用下面的代碼來做到這一點,但不能正常工作,這是工作只驗證像要求字段1(text1)。謝謝!驗證是否填寫了兩個表單域中的一個?

var field1 = text1; 
 
var field2 = text2; 
 

 
if (text2.length) { 
 
    if (!field1.length || !field2.length) { 
 
     return false; 
 
    } 
 
} else if (!field1.length) { 
 
    return false; 
 
}
<input type="text" placeholder="text 1*" name="text1" class="text1" data-target="previewText1" maxlength="11"> 
 
<input type="text" placeholder="text 2" value="" name="text2" class="text2" data-target="previewText2" maxlength="11">

回答

0

它的AND條件上與操作者不每種長度的簡單情況。

if (!field1.length && !field2.length) { 
    return false; 
} 

所以這就是說,如果field1是空的,而field2是空的,那麼表單是無效的。

這裏假定field1field2是字符串值而不是DOM元素。如果他們是DOM元素,那麼你需要使用field1.value.lengthfield2.value.length

+0

我試圖做所需的其中之一,但這是剛剛起步的第一個字段填寫,當我填的是第二場,離開第一個空表單按鈕是好的發送信息。 –

+0

您必須在設置'field1'或'field2'時遇到問題,因爲這是正確的邏輯。你可以在這裏看到一個工作演示https://jsfiddle.net/3jety3kb/ – MrCode

0

就像是:

var field1 = document.getElementsByClassName("text1").value; 
var field2 = document.getElementsByClassName("text2").value; 

// Check if one of the fields is not empty 
if (field1.length || field2.length) { 
     return true; 
} 
return false; 
相關問題