获得两个复选框值

时间:2017-03-03 12:53:27

标签: jquery checkbox javascript-events

我有两个复选框,我必须运行3个不同的功能,具体取决于用户检查的内容。

但是我似乎无法正确获取值:

    $('#checks').click(function() {
        if (!$('#different-billing-address').is(":checked") && $('#ccheck').is(":checked")) {alert("function1");}

        if ($('#different-billing-address').is(":checked") && !$('#ccheck').is(":checked")) {alert("function2");}

        if (!$('#different-billing-address').is(":checked") && !$('#ccheck').is(":checked")) {alert("function3");}

    });
<input type="checkbox" id="different-billing-address" data-multiplier="0.9" name="deliveryAddressSameAsBillingAddress" aria-expanded="false">
<label for="different-billing-address" class="checkbox-button">Delivery address is the same as billing address </label>
<br>
<input type="checkbox" id="ccheck" style="float:left;">
<label id="ocpc" class="checkbox-button">&nbsp;Get it delivered to an Order and Collection Point</label>
<br>
<button id="checks">MyButton</button>

有人可以向我解释为什么这不起作用?

谢谢!

1 个答案:

答案 0 :(得分:0)

你的逻辑很好看。但是,没有足够的信息来说明您的代码无法正常工作的原因。它可能是由以下原因引起的:

  1. 请在代码的[1,+,3,*,5]部分或底部,但在代码之前包含jQuery。
  2. 您需要将代码放在 DOM ready head中,以确保代码在$(function() { /* your code here */ });加载后触发。
  3. 以下演示使用您的逻辑并正常工作。

    &#13;
    &#13;
    DOM
    &#13;
    $(function() {
        var check1 = $('#different-billing-address'),
            check2 = $('#ccheck'),
            button = $('#checks');
        button.on('click', function() {
            if( !check1.is(':checked') && check2.is(':checked')  ) { console.log('Function1'); }
            if( check1.is(':checked') && !check2.is(':checked')  ) { console.log('Function2'); }
            if( !check1.is(':checked') && !check2.is(':checked') ) { console.log('Function3'); }
        });
    });
    &#13;
    &#13;
    &#13;