2011-12-13 43 views
7

嗨,这里是代码波纹管,我已经尝试了很多东西,但我无法获得选定的单选按钮的价值。正如你可以看到我需要得到不同情况下的价值。获取单选按钮的值在动作的情况下

<div style="display: inline-block"> 
     <div> 
       <a href="/Login/LogOut">Log Out</a><span> Welcome </span>YS User 1 noName  </div> 
     <br /> 
     <br /> 
     <br /> 
     <br /> 
     <input type="button" onclick="submitCreate();" value="New Survey" /><br /> 
     <input type="button" onclick="submitEdit();" value="Edit Survey" /><br /> 
     <input type="button" onclick="submitDelete();" value="Delete Survey" /><br /> 
     <input type="button" onclick="submitPreview();" value="Preview Survey" /> 
    </div> 
    <div style="display: inline-block"> 
<div> 
    <table class="MyTable"><thead><tr class="columnHead"><th scope="col"></th><th scope="col"><a href="/User/Index?sort=UserID&amp;sortdir=ASC">CreatedBy</a></th><th scope="col"><a href="/User/Index?sort=CreatedDate&amp;sortdir=ASC">Created Date</a></th><th scope="col"><a href="/User/Index?sort=IsRunning&amp;sortdir=ASC">Is Running</a></th></tr></thead><tbody><tr><td> <input name="selected" id="1" 

     type="radio" value="1" /></td><td>1</td><td>12/12/2011 3:43:57 PM</td><td>False</td></tr><tr class="altRow"><td> <input name="selected" id="2" 

     type="radio" value="2" /></td><td>1</td><td>12/13/2011 4:42:37 PM</td><td>False</td></tr><tr><td> <input name="selected" id="3" 

     type="radio" value="3" /></td><td>1</td><td>12/13/2011 6:27:38 PM</td><td>False</td></tr></tbody></table> 
</div> 
    </div> 
</body> 
</html> 
<script type="text/javascript"> 
    // var value = $$('input[name=selected]:checked')[0].get('value'); 
// var selectFoo; 
// $$('input[name=selected]').each(function (el) { 
//  if (el.checked == true) { 
//   selectFoo = el.value; 
//  } 
// }); 

    function getCheckedValue(radioObj) { 
     if (!radioObj) 
      return ""; 
     var radioLength = radioObj.length; 
     if (radioLength == undefined) 
      if (radioObj.checked) 
       return radioObj.value; 
      else 
       return ""; 
     for (var i = 0; i < radioLength; i++) { 
      if (radioObj[i].checked) { 
       return radioObj[i].value; 
      } 
     } 
     return ""; 
    }; 

    function submitCreate() { 
     var adress = "/User/CreateSurvey/"; 
     document.location = adress; 
    }; 

    function submitEdit() { 
     var adress = "/Den/Index/" + getCheckedValue('selected'); 
     document.location = adress; 
    }; 

    function submitDelete() { 
     var adress = "/User/DeleteSurvey/" + getCheckedValue('selected'); 
     document.location = adress; 
    }; 

    function submitPreview() { 
     var adress = "/User/PreviewSurvey/" + getCheckedValue('selected'); 
     document.location = adress; 
    }; 
</script> 
+0

可能的重复[如何获得的值选择单选按钮?](http://stackoverflow.com/questions/15839169/how-to-get-value-of-selected-radio-button) –

回答

9

您可以使用document.getElementsByName(<button_name>)document.getElementsByTagName("input")以获取输入元素的数组。通过这些元素循环检查哪一个是checked

这里是“选择”,如何从一组名为单选按钮得到确认键的值的例子:

<html> 
    <head> 
     <script type="text/javascript"> 
      function get_radio_value() { 
      var inputs = document.getElementsByName("selected"); 
      for (var i = 0; i < inputs.length; i++) { 
       if (inputs[i].checked) { 
       return inputs[i].value; 
       } 
      } 
      } 

      function onSubmit() { 
      var id = get_radio_value(); 
      alert("selected input is: " + id); 
      } 
     </script> 
    </head> 
    <body> 
     <form onsubmit="onSubmit();"> 
      <input name="selected" value="1" type="radio"/>1<br/> 
      <input name="selected" value="2" type="radio"/>2<br/> 
      <input name="selected" value="3" type="radio"/>3<br/> 
      <input type="submit" value="submit"/> 
     </form> 
    </body> 
</html> 
+0

谢谢sudocode。它帮助了我,但它并不是我看过的。 我已经解决了该代码的问题。希望它可以帮助别人...... function get_radio_value(){ for(var i = 0; i serhads

+0

@serhads这是相当可怕的,因为你做document.getElementsByName()来获得你的输入数组总共三次(在for循环中两次)。你应该只做一次DOM查询。 – sudocode

+0

我更新我的答案以显示正确的等效方法。 – sudocode

2

我选择让代码编号为需要的功能。从我api.jquery.com下面给出了一个为我工作的人。希望这有助于他人。

HTML

<input type="radio" name="option" value="o1">option1</input> 
<input type="radio" name="option" value="o2">option2</input> 

的JavaScript

var selectedOption = $("input:radio[name=option]:checked").val() 

可变selectedOption将包含所选择的单选按钮的值(即)O1或O2

相关问题