2015-04-01 88 views
0

我想知道RadioButtonList中某个项目的'Value'属性。RadioButtonList及其'Value'属性

如果我想要获取列表中选定的单选按钮的值,这些按钮必须是唯一的,否则它将自动选择它找到的第一个项目,并使用我正在查找的值。所以没有重复的值。

这是为什么?我环视网络,使用它们,所以我知道它是如何工作的,但我想知道为什么它以这种方式工作。

如果我选择列表中的一个项目,它知道我选择了哪个项目。按钮填满后,您可以获得所选项目的索引......为什么不能这样做:“好的,您选择了索引X处的项目。您还需要值?好吧,让我访问列表中,转到项目X并获得它的价值。“

我只能认为,当你想要一个项目的价值,它是看价值而不是索引,然后通过价值?

更新1: 在我的具体情况我这样做:

我有1个RadioButtonList的,在它有3个项目(单选按钮)。下面的Select ... Case发生在点击按钮内部。

Select Case RadioButtonList1.SelectedItem.Text 
    Case "TextA" 

    Case "TextB" 
     //This RadioButton has a value of 200 
    Case "TextC" 
     //This RadioButton has a value of 200 
End Select 

这适用于第一个案例和只有一个其他。在我调试的时候,第一个和第二个案例都没有问题。当我选择了第三个RadioButton,然后执行该事件时,它将自动选择第二个RadioButton,因为它与第三个RadioButton的值相同,但是排在第一位。

更改其中一个相同的值可修复此问题。

回答

0

不确定我完全理解,你有你的HTML,脚本分享?如果您使用重复ID对单选按钮组进行分组,您可能会遇到问题;你应该只使用相同的名称属性。在这种情况下,如果您尝试使用selectElementById获取值,它将只抓取第一个值。 由于您“想要获取列表中所选单选按钮的值”,因此可以获取同名命名输入数组(getElementsByName)并遍历并查找“CHECKED”条件:

<input type="radio" name="cars" value="beamer" checked="checked">BMW<br><br> 
 
<input type="radio" name="cars" value="prius">Prius<br><br> 
 
<input type="radio" name="cars" value="volvo">Volvo<br><br> 
 
<input type="radio" name="cars" value="beamer">BMW<br><br> 
 
<input type="radio" name="cars" value="prius">Prius<br><br> 
 
<input type="radio" name="cars" value="volvo">Volvo<br><br> 
 
<p>Selected Car Value and Index:</p> 
 
<div id="selectedCar"></div><br><br> 
 

 
<button onclick="getVal()">Get Value and Index</button> 
 

 
<script> 
 
var getVal = function(){ 
 
    var cars = document.getElementsByName('cars'); 
 
    var result = document.getElementById("selectedCar"); 
 
    for (var i = 0, length = cars.length; i < length; i++) { 
 
     if (cars[i].checked) { 
 
      result.innerHTML = "value: " + cars[i].value + " and index: " + i; 
 
      break; 
 
     } 
 
    } 
 
} 
 
</script>

+0

我目前没有它,但我知道它不起作用。如果我有一个RadioButtonList有3项:Item1(Index = 0,Value = 100),Item2(Index = 1,Value = 200)和Item3(Index = 2,Value = 200)。现在,如果我想获得RadioButtonList1.SelectedItem.Value并选择了Item3,这将返回Item2的值,因为它是值为200的第一个项目。 – Bill 2015-04-01 19:13:42

+0

我更新了原始帖子。 – Bill 2015-04-01 19:23:52