簡體   English   中英

三重嵌套JS IF語句

[英]Triple nested JS IF statement

我在使用三層嵌套IF語句時遇到問題。

我有一個帶有兩個單選按鈕的問題表格,這個問題並不總是可見的。 我想捕獲所做的選擇,但是默認情況下,單選按鈕未選中,並且在源代碼中仍然可見,但是使用CSS display:none進行隱藏。 因此,我需要指定僅在做出選擇后才發送用於選擇的數據(用於測試的控制台日志)。

邏輯應該是,如果div可見,則檢查是否選擇了Q3_1,如果為true,則發送是,如果為false,則檢查是否選擇了Q3_0,如果為true,則發送False,如果未選擇則不發送。

我認為最好具有以下邏輯,但我也無法使其正常工作。

如果div可見且選擇了Q3_1,則發送是;否則如果div可見且選擇了Q3_0,則發送否

提前謝謝了。

$(function () {
    // Handler for .ready() called.
    if ($("[id^=divWantMedical]").is(":visible")) {
        if  (document.querySelector("[id$='PreexistingConditions.Question3_1']").checked == true){
            console.log("Send Yes");

        } else {
            if  ((document.querySelector("[id$='PreexistingConditions.Question3_0']").checked == true){
                console.log("Send No");

            } else {
                console.log("Don't send anything");

            }
        }
    }
});

if您在if后面加上一個括號:

if  ((document.querySelector("[id$='PreexistingConditions.Question3_0']").checked == true) {

應該

if  (document.querySelector("[id$='PreexistingConditions.Question3_0']").checked == true){

對於單選按鈕,應始終確保默認情況下選中一個單選按鈕,否則用戶在不重新加載頁面(或重置表單)的情況下無法返回到初始狀態(兩個按鈕均未選中),但是重置按鈕似乎快死了)。

在這種情況下,必須始終選擇一個按鈕,因此您將始終發送是/是或否/否。

但是,您似乎想涵蓋兩種情況都未選中的情況(可能取消提交並顯示錯誤消息)。 因此,以簡化形式,您想執行以下操作:

 function doCheck(el) { var form = el.form; if (form.isVisible.checked) { if (form.Q[1].checked) { form.result.value = 'Send Yes'; } else if (form.Q[0].checked) { form.result.value = "Send No"; } else { form.result.value = "Don't send anything"; } } else { form.result.value = 'Element not visible'; } } 
 <form onsubmit="return false"> <fieldset><legend>Logic test</legend> Visible?<input type="checkbox" name="isVisible" checked><br> Q3_0<input type="radio" name="Q"><br> Q3_1<input type="radio" name="Q"><br> <input type="button" value="Test" onclick="doCheck(this)"> <input type="reset"><br> </fieldset> <input name="result" readonly> </form> 

如果該元素不可見,則if邏輯都不會運行。 我使用了一個復選框來簡化元素是否可見的邏輯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM