詳細ページに4つの異なるフィールドがあります。そこには、ユーザが次のページにナビゲートできるようにするために、それぞれのフィールドを2つずつ設定する必要があります。
さらに、ユーザーが次のページに移動できるようにする前に、2セットの2つのフィールドのセットが満たされていることを確認するための条件付きチェックがあります。
したがって、流れは以下の通りである:
[EITHER]
セットA:dropdownmenu_A & inputTEXTfield_A
[OR]
を充填さ
SET B:ドロップダウンメニューB & inputTEXTfield_B
が入力されています。
条件付きチェックでは、次のページに移動できます。
いずれか一方が入力されていない場合は、そのユーザーは進行できません。
問題:
この時点で、ユーザーが必須フィールドが充填されていないにもかかわらず、まだ次のページに、現在のページから提出してナビゲートすることができます。これは、私がチェック(疑似コード)するために使用したロジックです。したがって、以下の条件は、フィールドが空であるか満たされているかを実際に確認する必要があります。
どこのオペレータロジックが間違っていますか?
コード:
// On Submit
function SubmitReceiptDetails() {
idleTime = 0;
//Check for Input Field
if (($.trim($("#dropDownShops_1").val()) == "" &&
$.trim($("#ReceiptField_1").val()) == "") ||
($.trim($("#dropDownShops_2").val()) == "" &&
$.trim($("#ReceiptField_2").val()) == "")) {
console.log("Receipt_Field_Error wrong");
alert("Your field is not filled");
} else {
$('#PageA').fadeOut();
$('#PageB').fadeIn();
}
}
<form>
<!-- DropDown Menu to choose Participating Outlet -->
<select id="dropDownShops_1">
<option value="None" selected="Selected">Please Select Shops ...</option>
</select>
<input type="text" id="ReceiptField_1" style="z-index=10; position:absolute; top:390px; left:858px; height:58px; width:265px; outline:0; border: 0; font-size:25px; font-family:'Gothic'; color:#765725; background: transparent;" autofocus>
<select id="dropDownShops_2">
<option value="None" selected="Selected">Please Select Shops ...</option>
</select>
<input type="text" id="ReceiptField_2" style="z-index=10; position:absolute; top:585px; left:858px; height:58px; width:265px; outline:0; border: 0; font-size:25px; font-family:'Gothic'; color:#765725; background: transparent;">
</form>
代わりに===演算子を使用しようとしましたか? – DanielC
[mcve]を作成してください。スニペットは実行されません。あなたはsubmitイベントにバリデーションを割り当てていません – mplungjan
返された値を見ることができるように、すべてのフィールドの '.val()'がtrueを返すときにロギングを試みましたか?もしそうなら、彼らは何を返すのですか? – haxxxton