我想知道RadioButtonList中项目的'Value'属性。
如果我想获取列表中所选单选按钮的值,则这些值必须是唯一的,否则它将自动选择它找到的第一个项目,其中包含我正在寻找的值。所以没有重复的值。
这是为什么?我环顾网络,使用它们,所以我知道它是如何工作的,但我想知道它为什么这样工作。
如果我在列表中选择一个项目,它会知道我选择了哪个项目。按钮填写,你可以得到所选项目的索引...所以为什么不去:“好的,你选择了索引为X的项目。你还想要值吗?好的,让我访问列表,转到项目X并获取其值。“
我只能认为,当你想要一个项目的价值时,它是按价值而不是按指数然后按价值来看?
更新1: 在我的特殊情况下,我这样做:
我有1个RadioButtonList,里面有3个项目(RadioButtons)。以下选择...案例发生在按钮单击内。
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
这适用于第一个Case而且只适用于其他一个Case。在调试时,第一和第二个案件都很顺利。当我选择第三个RadioButton,然后执行该事件时,它将自动选择第二个RadioButton,因为它具有与第三个相同的值,但在列表中排在第一位。
更改其中一个相同的值可修复此问题。
答案 0 :(得分: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>