如果选中另一个,请取消选中复选框

时间:2018-01-16 17:19:56

标签: javascript jquery html checkbox

所以我的页面上有以下2个复选框,附在它上面的小脚本,用于隐藏结算部分。

<script>

function myFunction2() {
    var x = document.getElementById("billing_info");
    if (x.style.display === "none") {
        x.style.display = "block";
    } else {
        x.style.display = "none";
    }
}

</script>

我正在使用以下脚本尝试取消选中复选框

    <script>
          $(document).ready( function a()
{
   if (  $('#sameAsBilling').is(':checked'))
    {
       $('#check2').attr('checked', false);
    }
});
</script>




        <div class="header">
           <h3 class="checkout-headers">STEP 3 - Billing Information </h3>
          <!--START: sameAsBilling1-->
<!--value="ON"-->
          <div class="sameAsBilling1">
            <input type="checkbox" name="sameAsBilling" id="sameAsBilling" onclick="showHideShipping();check_address('');"/>
            <label for="sameAsBilling">Same as Delivery Address</label>
            <div class="clear"></div>
          </div>
            <div class="differentBilling">
                <input type="checkbox" class="example" id="check2" onclick="myFunction2()"; return false;>Different Billing Address?</div>
          <!--END: sameAsBilling1-->
          <div class="clear"></div>
        </div>

我的问题是有人将以下代码隐藏在javascript文件中,如果勾选了特定的复选框,则将交付详细信息转移到结算明细。

  function showHideShipping() {

     if (document.billing.sameAsBilling.checked) {
      add_overlay("billing_info", 0);

       if (get_Element('billing_firstname').value != get_Element('shipping_firstname').value) {
        get_Element('billing_firstname').value = get_Element('shipping_firstname').value;
        get_Element('billing_lastname').value = get_Element('shipping_lastname').value;
        get_Element('billing_company').value = get_Element('shipping_company').value;
        get_Element('billing_phone').value = get_Element('shipping_phone').value;
        get_Element('billing_address').value = get_Element('shipping_address').value;
        get_Element('billing_address2').value = get_Element('shipping_address2').value;
        get_Element('billing_city').value = get_Element('shipping_city').value;
        get_Element('billing_zip').value = get_Element('shipping_zip').value;
        get_Element('billing_country').value = get_Element('shipping_country').value;
        populateState('billing_state', 'billing_country');
        get_Element('billing_state').value = get_Element('shipping_state').value;
      }
    } else {
      remove_overlay("billing_info");

    get_Element('billing_firstname').value = '';
      get_Element('billing_lastname').value = '';
      get_Element('billing_company').value = '';
      get_Element('billing_phone').value = '';
      get_Element('billing_address').value = '';
      get_Element('billing_address2').value = '';
      get_Element('billing_city').value = '';
      get_Element('billing_zip').value = '';
      get_Element('billing_country').value = get_Element('shipping_country').value;
      populateState('billing_state', 'billing_country');
      get_Element('billing_state').value = get_Element('shipping_state').value;


    }
}

1 个答案:

答案 0 :(得分:0)

您错过了else。因此,无论复选框的状态如何,隐藏结算信息并将发货信息复制到其中的代码都会一直执行。

   if (document.billing.sameAsBilling.checked) {
      add_overlay("billing_info", 0);

      get_Element('billing_firstname').value = '';
      get_Element('billing_lastname').value = '';
      get_Element('billing_company').value = '';
      get_Element('billing_phone').value = '';
      get_Element('billing_address').value = '';
      get_Element('billing_address2').value = '';
      get_Element('billing_city').value = '';
      get_Element('billing_zip').value = '';
      get_Element('billing_country').value = get_Element('shipping_country').value;
      populateState('billing_state', 'billing_country');
      get_Element('billing_state').value = get_Element('shipping_state').value;
    } else {
      remove_overlay("billing_info");
      if (get_Element('billing_firstname').value != get_Element('shipping_firstname').value) {
        get_Element('billing_firstname').value = get_Element('shipping_firstname').value;
        get_Element('billing_lastname').value = get_Element('shipping_lastname').value;
        get_Element('billing_company').value = get_Element('shipping_company').value;
        get_Element('billing_phone').value = get_Element('shipping_phone').value;
        get_Element('billing_address').value = get_Element('shipping_address').value;
        get_Element('billing_address2').value = get_Element('shipping_address2').value;
        get_Element('billing_city').value = get_Element('shipping_city').value;
        get_Element('billing_zip').value = get_Element('shipping_zip').value;
        get_Element('billing_country').value = get_Element('shipping_country').value;
        populateState('billing_state', 'billing_country');
        get_Element('billing_state').value = get_Element('shipping_state').value;
      }
    }