2014-05-09 60 views
0

我正在使用以下Javascript代碼來驗證在提交表單之前至少有一個無線電輸入已被檢查,但我面臨一個問題,因爲即使沒有無線電,表單總是提交輸入檢查...可以有人請告訴我我在這裏失蹤以及如何解決它嗎?由於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"/> 

顯然無線電輸入沒有檢查,這就是爲什麼顯然它沒有在我身邊工作,所以想知道有一種方法,我可以驗證從單選按鈕的第一個父跨度?

+0

當沒有選擇任何東西時不會提交給我。http://jsfiddle.net/j08691/z22J4/。此外,在您提交表單後返回false也沒有意義。 – j08691

+0

你運行的是什麼版本的jQuery?我似乎回憶起在':checked''年以前有問題,我現在無法使用最新的jQuery進行復制。 –

+0

@ 75thTrombone我在我的問題中添加了一個小的編輯,解釋瞭如何使用Chrome開發工具檢查/取消選中廣播輸入時發現的html更改 – MChan

回答

0

你需要做這樣的使用is()

if ($('input[name="orderAmount"]').is(':checked')) 
{ 
} 
+0

它沒有工作:(感謝 – MChan

+0

我已經添加了一個小編輯我的問題解釋瞭如何使用Chrome開發工具 – MChan

+0

檢查/取消選中無線電輸入時發現html變化,請參閱:http://stackoverflow.com/questions/15530582/check-if-a-radio-button-是-籤的jQuery –

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'); 
    }  
});