2017-06-06 8 views
0

2つのフィールドのうちの少なくとも1つが必須です。フィールド1が入力された場合、またはフィールド2が入力された場合はフォームが送信され、必要なものは1つだけ入力されます。私は、以下のコードでこれをしようとしていますが、うまく動作していない、これはフィールド1(text1)が必要なように検証のみ動作しています。ありがとうございました!2つのフォームフィールドのいずれかが満たされている場合に検証しますか?

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

:私は必要なそれらのいずれかを実行しようとしているが、これは単なるフォームボタンは大丈夫です、私は2番目のフィールドを埋める際に、充填された第1のフィールドを取得し、最初の空のままにされて

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; 
関連する問題