如何将带有AND CONDITION的IF CONDITION和NOT操作符放在javascript中?

时间:2014-03-11 06:50:53

标签: javascript

 <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>

现在在函数中,我正在检查所选单选按钮的值。如果用户选择支付单选按钮,则单击提交按钮会提醒用户付款。当用户选择 COD 单选按钮时,提交时会提醒COD。

我想要的是,当用户没有选择任何内容并点击提交按钮时,它应该提醒用户。不幸的是,它没有检查条件。有人可以帮帮我吗?

4 个答案:

答案 0 :(得分:0)

试试这个,

else if ((val_ocharges =="")

     {
       alert("hi"); 
     }

希望这会有所帮助!!

答案 1 :(得分:0)

您可以尝试这样:

<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>

答案 2 :(得分:0)

你的问题是有条件的,靠近顶部:

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>

答案 3 :(得分:0)

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

var value_ocharges = false;

然后,而不是:

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

在循环之外使用它:

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

基本上,这会检查是否在循环中的某处定义了val_ocharges,如果不是,则会触发警报。