2016-09-10 114 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>

相关问题