2017-06-06 54 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; 
相关问题