Javascript验证无线电输入无效

时间:2014-05-09 16:55:05

标签: javascript jquery html forms

我使用以下Javascript代码来验证在提交表单之前至少检查了一个无线电输入,但是我遇到了一个问题,因为即使没有检查无线电输入,表单总是提交...可以有人请告诉我这里缺少什么以及如何解决它?感谢

<script type="text/javascript">

 function processPayment() {
    if ($("input[name='orderAmount']:checked").length > 0){
        alert('OK');
        document.getElementById('orderFrm').submit(); 
        return false;
    }
    else{
        alert('Please select order amount');
    }       
 }

 </script> 


<div id="content">
  <form id="orderFrm" name="orderFrm" action="https://...." method="post" target="_top">
       ....

       <div class="orderamnt">
        <label for="orderAmount50">
          <span class="labelText">50</span>
          <input type="radio" id="orderAmount50" name="orderAmount" value="50"/>
        </label>
       </div>
       <div class="orderamnt">
        <label for="orderAmount100">
          <span class="labelText">100</span>
          <input type="radio" id="orderAmount100" name="orderAmount" value="100"/>
        </label>
       </div>
       <div class="orderamnt">
        <label for="orderAmount200">
          <span class="labelText">200</span>
          <input type="radio" id="orderAmount200" name="orderAmount" value="200"/>
        </label>
       </div>

       <a class="buyNowButton" href="javascript:{}" onclick="processPayment()">Order</a>
       ....
   </form>
</div>

注意:

我在检查更改的任何单选按钮时注意到:

  <div id="orderamnt">
    <span class="">
      <input type="radio" id="orderAmount200" name="orderAmount" value="200"/>

为...

  <div id="orderamnt">
    <span class="checked">
      <input type="radio" id="orderAmount200" name="orderAmount" value="200"/>
很明显收音机输入没有检查过,这就是为什么显然它不能正常工作,所以想知道有没有办法可以通过单选按钮验证第一个父级?

2 个答案:

答案 0 :(得分:0)

你需要使用is()

这样做
if ($('input[name="orderAmount"]').is(':checked'))
{
}

答案 1 :(得分:0)

使用jquery 1.6.4或+,此代码正常运行!

$('.buyNowButton').click(function(){   
    if ($("input[name='orderAmount']:checked").length > 0){   
        document.getElementById('orderFrm').submit(); 
        return false;
    }
    else{
        alert('Please select order amount');
    }       
 });