2016-09-10 152 views
0

我想讓javascript檢查是否在其他單選按鈕中選中了特定的單選按鈕。如何檢查是否使用Javascript在其他單選按鈕之間檢查了特定的單選按鈕?

檢查驗證方法,如果任何單選按鈕完美地工作:

這是一個片段包含所述單選按鈕的HTML代碼:

<form id = "buy" name = "buy" onsubmit = "return valiform()"> 

    <input type="radio" name="Card_type" value="visa" > Visa </input> 
    <input type="radio" name="Card_type" value="mastercard" > Mastercard</input> 
    <input type="radio" name="Card_type" value="paypal" > Paypal </input> 
    <input type="submit" value="Confirm order"> 
</form> 

這是Javascript代碼的關於無線電代碼段按鈕:

<script type = "text/javascript"> 
      function valiform(){ 
      var visa = document.buy.Card_type; 
      var mastercard = document.buy.Card_type; 
      var paypal = document.buy.Card_type; 
      var message = "Error!\n"; 
      function validateRadio (radios) 
      { 
       for (i = 0; i < radios.length; ++ i) 
       { 
        if (radios [i].checked) return true; 
       } 
       return false; 
      } 
      if(validateRadio (document.buy.Card_type)) 
      { 

      } 
      else 
      { 
       message+= "Please select card.\n"; 
      } 
      if(message != "Error!\n"){ 
      alert(message); 
      return false; 
      } 
     } 
</script> 

到目前爲止代碼工作完美,但我想如果選擇特別是貝寶單選按鈕,檢查代碼。我不能在不引發錯誤的情況下做到這一點。任何想法如何做到這一點?

回答

1

首先改變貝寶行:

<label><input id="paypalRadio" type="radio" name="Card_type" value="paypal"> Paypal </label> 

這種利用這個代碼,如果給定的單選按鈕被選中,這將返回true:

document.getElementById('paypalRadio').checked 

,或者你可以做到這一點沒有改變任何東西:

$("td[name=Card_type]")[2].prop("checked", true) 
+0

用與你相似的方法解決它。如果(document.buy.Card_type.value ==「paypal」) 感謝您的幫助! – Roundar

+0

無線電輸入是空的元素。 – DanMan

0

而不是隻返回true,你可以有validateRadio()返回選中按鈕的值。然後你可以把它分配給一個變量。

var selected = validateRadio(document.buy.Card_type); 
if (selected == 'paypal') { 
    ... 
} 
0

<input type="radio" name="Card_type" value="visa" > Visa </input>無效html; <input>empty element,其中內容是不允許的。可以使用.addEventListener()submit事件附接到<form>元件,.querySelectorAll()Array.prototype.some(),在從.querySelectorAll()結果索引2檢查元件,以確定是否具有value等於"paypal"input元件檢查

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <link rel="stylesheet" href="style.css"> 
 
    <script src="script.js"></script> 
 
</head> 
 

 
<body> 
 
    <form id="buy" name="buy"> 
 
    <input type="radio" name="Card_type" value="visa" /> 
 
    <input type="radio" name="Card_type" value="mastercard" /> 
 
    <input type="radio" name="Card_type" value="paypal" /> 
 
    <input type="submit" value="Confirm order"> 
 
    </form> 
 

 
    <script type="text/javascript"> 
 
    function valiform(event) { 
 
     event.preventDefault(); 
 
     var radios = this.querySelectorAll("input[type=radio]") 
 
     var message = "Error!\n"; 
 

 
     function validateRadio(radios) { 
 
     return Array.prototype.some.call(radios, function(input) { 
 
      return input.checked 
 
     }) 
 
     } 
 
     if (validateRadio(radios)) { 
 
     if (radios[2].checked) { 
 
      alert(radios[2].value + " radio is checked") 
 
     } 
 
     event.target.submit(); 
 
     } else { 
 
     message += "Please select card.\n"; 
 
     } 
 
     if (message != "Error!\n") { 
 
     alert(message); 
 
     return false; 
 
     } 
 
    } 
 
    document.getElementById("buy").addEventListener("submit", valiform) 
 
    </script> 
 
</body> 
 

 
</html>

相關問題