如何将IF条件与AND条件和NOT操作符在javascript

How to put IF CONDITION with an AND CONDITION and the NOT OPERATOR in javascript?

本文关键字:条件 NOT 操作符 javascript IF AND      更新时间:2023-09-26
 <body>
  <input type="radio" name="other_charges" value="To Pay" >To Pay
 <input type="radio"  name="other_charges" value="COD"  >COD
 <input type="submit" onclick="sum_cash()"/>
</body>
这是我的HTML…在这我有两个单选按钮具有不同的值,我已经调用了一个函数使用onclick事件....下面是代码…
<script type="text/javascript">
    function sum_cash() {
      var elements_ocharges = document.getElementsByName('other_charges');
      for (var i = 0; i < elements_ocharges.length; i++) {
        if (elements_ocharges[i].checked)
          value_ocharges = elements_ocharges[i].value;
      }
      var val_ocharges=value_ocharges;
      if (val_ocharges=="To Pay") {
        alert("pay");   
      }
      if (val_ocharges=="COD") {
        alert("cod");   
      }
      if ((val_ocharges!="COD") && (val_ocharges!="To Pay") ) {
        alert("hi");    
      }
    }
</script>

现在在函数中,我正在检查选中的单选按钮的值。如果用户选择Pay单选按钮,那么在单击提交按钮时,它会提醒用户付款。当用户选择COD单选按钮时,然后在提交时提醒COD。

我想要的是,当用户没有选择什么,点击提交按钮,然后它应该提醒用户。不幸的是,它没有检查条件。有人能帮帮我吗?

您可以这样尝试:

<script type="text/javascript">
  function sum_cash()
  {
    var elements_ocharges = document.getElementsByName('other_charges');
    var value_ocharges = null;
    for (var i = 0; i < elements_ocharges.length; i++)
    {
      if (elements_ocharges[i].checked)
        value_ocharges = elements_ocharges[i].value;
    }
    var val_ocharges=value_ocharges;
 if(val_ocharges=="To Pay")
 {
    alert("pay");   
  }
 else if(val_ocharges=="COD")
 {
   alert("cod");    
 }
 else
 {
   alert("hi"); 
 }  }
</script>

你的问题是这个顶部附近的条件:

if (elements_ocharges[i].checked)
       value_ocharges = elements_ocharges[i].value;

由于没有选中单选按钮,因此value_ocharges从未设置。这将导致一个错误,当你试图访问var val_ocharges=value_ocharges;的值,你应该设置value_ocharges的值为一些东西(null是好的)在进入你的循环,然后一切都会工作:

<script type="text/javascript">
  function sum_cash()
  {
    var elements_ocharges = document.getElementsByName('other_charges');
    var value_ocharges = null;
    for (var i = 0; i < elements_ocharges.length; i++)
    {
      if (elements_ocharges[i].checked)
        value_ocharges = elements_ocharges[i].value;
    }
    var val_ocharges=value_ocharges;
    if(val_ocharges=="To Pay")
    {
      alert("pay");   
    }
    if(val_ocharges=="COD")
    {
      alert("cod");    
    }
    if ((val_ocharges!="COD") && (val_ocharges!="To Pay") )
    {
      alert("hi"); 
    }
  }
</script>

试试这个,

else if ((val_ocharges =="")
     {
       alert("hi"); 
     }

希望这有帮助!!

首先,将value_ocharges设置在for循环的上方:

var value_ocharges = false;

然后,而不是:

if ((val_ocharges!="COD") && (val_ocharges!="To Pay") ) {
    alert("hi"); 
}

在循环外使用:

if (!val_ocharges){
    alert("hi");
}

基本上,这检查是否在循环中定义了val_ocharges,如果没有,则触发警报。