if和else条件不适用于所有jQuery语句

时间:2019-08-04 16:25:48

标签: javascript jquery html

我正在使用此代码检查条件。

jQuery(document).ready(function($){
  $('#uitkering_funds').hide();
  $('#uitkering_funds_hoofd').hide();
  $('#partner_uitkering').hide();
  $('#partner_uitkering_funds').hide();
  $("input[name=alleenstande],input[name=uitkering],input[name=partner_uitkering]").bind('change', function() {
      if ($("input[name=alleenstande]:checked").val() == 1 && $('input[name=uitkering]:checked').val() == 1)   {
          $("#uitkering_funds_hoofd").fadeIn(200);
          $("#partner_uitkering").hide();
          $('#partner_uitkering_funds').hide();
      } 
      else if ($("input[name=alleenstande]:checked").val() == 0 && $('input[name=uitkering]:checked').val() == 1)   {
          $("#uitkering_funds_hoofd").fadeIn(200);
          $("#partner_uitkering").hide();
          $('#partner_uitkering_funds').hide();
      }
      else if ($("input[name=alleenstande]:checked").val() == 0 && $('input[name=uitkering]:checked').val() == 0)   {
          $("#uitkering_funds_hoofd").hide();
          $("#partner_uitkering").fadeIn(200);
      }
      else if ($("input[name=alleenstande]:checked").val() == 0 && $('input[name=uitkering]:checked').val() == 0 && $('input[name=partner_uitkering]:checked').val() == 1)   {
          $("#uitkering_funds_hoofd").hide();
          $("#partner_uitkering_funds").fadeIn(200);
          alert('2');
      }
      else {
          $('#uitkering_funds').hide();
          $('#uitkering_funds_hoofd').hide();
          $('#partner_uitkering').hide();
          $('#partner_uitkering_funds').hide();
      }
  });
});

在三个条件下都可以正常工作,但是停止处理此语句。

 else if ($("input[name=alleenstande]:checked").val() == 0 && $('input[name=uitkering]:checked').val() == 0 && $('input[name=partner_uitkering]:checked').val() == 1)   {
          $("#uitkering_funds_hoofd").hide();
          $("#partner_uitkering_funds").fadeIn(200);
          alert('2');
      }

我在这里做错什么了吗?能帮我这个代码如何在所有条件下工作吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

$('input [name = partner_uitkering]:checked')。val()== 1

您确定输入名称“ partner_uitkering”的值是1吗?

在编写条件语句时,您实际上应该考虑所有这三个值。

答案 1 :(得分:0)

您的最后一个else if永远不会进行评估,因为它以与前一个else if相同的条件开始。也许考虑使用switch case语句,或者按照@spgk的建议,检查每个if条件的所有输入的状态。

https://www.w3schools.com/js/js_if_else.asp

https://www.w3schools.com/js/js_switch.asp

其他一些想法:

不确定使用的是哪个版本的jQuery,但是

  

自jQuery 3.0起,.bind()已被弃用。它已由.on()取代
  https://api.jquery.com/bind/

此外,无需检查:checked伪类,并希望强制和松散的等效项不会产生怪异的事情,对于jQuery,您可以仅使用.prop('checked')