javascript的多个条件

javascript的多个条件,javascript,jquery,Javascript,Jquery,请问如何在javascript中设置多个条件 当前,选中复选框后,当按钮满足第一个条件时,按钮将启用 如果第二个条件在选中任何复选框时也被选中,第三个条件在用户选择下拉列表时被选中,我将尝试添加另外两个条件 我尝试使用if(checkbox.checked==true)&&(进行测试,但得到一个控制台错误 第一个条件: <p style="color: red; font-weight: bold;">I have read and agree to the terms and co

请问如何在javascript中设置多个条件

当前,选中复选框后,当按钮满足第一个条件时,按钮将启用

如果第二个条件在选中任何复选框时也被选中,第三个条件在用户选择下拉列表时被选中,我将尝试添加另外两个条件

我尝试使用
if(checkbox.checked==true)&&(
进行测试,但得到一个控制台错误

第一个条件:

<p style="color: red; font-weight: bold;">I have read and agree to the terms and conditions             
<input type="checkbox" id="termsChkbx" onchange="isChecked(this,'sub1')"/></p>
 <span class='chosen'><input type='checkbox' name='CD[]' value='{$CD['CDID']}' title='{$CD['CDPrice']}' /></span>
<section id="placeOrder">
            <h2>Place order</h2>
            Your details
            Customer Type: <select id="show" name="customerType" onchange="change(this)">
                <option value="">Customer Type?</option>
                <option value="ret">Customer</option>
                <option value="trd">Trade</option>
            </select>
提交按钮:

<p><input type="submit" name="submit" value="Order now!" id="sub1" disabled="disabled"/></p>

当我尝试反向选择时,提交按钮不会变为启用。如果我从上到下,它是有效的,但反过来不行

满足if语句条件后,按钮变为启用状态。如果我取消选择第二个或第三个条件中的任何一个,提交按钮仍处于启用状态。似乎第一个条件具有更高的优先级


如果
语句不正确,则
中的条件语法不正确

而不是:

if (checkbox.checked === true) && ()
做:


您可以在第一个
if
语句中使用
&&
添加所有检查:

function isChecked(checkbox, sub1) {
    var button = document.getElementById(sub1);
    var checkboxes = document.querySelectorAll('input[name="CD[]"]');
    var select = document.getElementById('show');

    var atLeastOneCheckbox = false;
    for (var index=0; index<checkboxes.length; ++index) {
        if (checkboxes[index].checked) {
            atLeastOneCheckbox = true;
            break;
        }
    }

    if (checkbox.checked && atLeastOneCheckbox  && select.value) {
        button.disabled = "";
    } else {
        button.disabled = "disabled";
    }
}
功能已检查(复选框,子1){
var按钮=document.getElementById(sub1);
var复选框=document.querySelectorAll('input[name=“CD[]”]);
var select=document.getElementById('show');
var atlestonecheckbox=false;

对于(var index=0;indexThanks,只是问select.valud检查的是什么?对于atLeastOneCheckbox,它检查的是真实情况吗?哦,那是一个输入错误。我的意思是说
select.value
.editedthankyou。它不起作用,所以我使用if语句,发现atLeastOneCheckbox不起作用。第二次输入错误,你需要执行 document.querySelector all
获取所有匹配项的列表,而不是
document.querySelector
.edited检查它是否正常工作。我更新了底部的问题,发现了一些小错误。在第一张图片上,如果我反向,从下到上选择按钮将不会启用。在第二张图片上,如果我取消选择,但仍然选择“我已阅读并同意…”提交按钮仍将启用。
if (checkbox.checked === true && somethingElse === false && evenMore === true){
  button.disabled = "";
}
function isChecked(checkbox, sub1) {
    var button = document.getElementById(sub1);
    var checkboxes = document.querySelectorAll('input[name="CD[]"]');
    var select = document.getElementById('show');

    var atLeastOneCheckbox = false;
    for (var index=0; index<checkboxes.length; ++index) {
        if (checkboxes[index].checked) {
            atLeastOneCheckbox = true;
            break;
        }
    }

    if (checkbox.checked && atLeastOneCheckbox  && select.value) {
        button.disabled = "";
    } else {
        button.disabled = "disabled";
    }
}