【问题标题】:RadioButtonList and their 'Value' propertyRadioButtonList 及其“值”属性
【发布时间】:2015-04-01 16:52:50
【问题描述】:

我想知道 RadioButtonList 中某个项目的“值”属性。

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

这是为什么?我环顾了网络,使用了它们,所以我知道它是如何工作的,但我想知道它为什么会这样工作。

如果我在列表中选择一个项目,它会知道我选择了哪个项目。按钮填写,你可以得到被选中项的索引……那为什么不走:“好吧,你选择了索引 X 处的项目。你也想要值?好吧,让我访问列表,转到项目 X 并获取它的值。”

我只能认为当你想要一个项目的价值时,它是按值而不是按索引然后按值查找?

更新 1: 在我的特殊情况下,我正在这样做:

我有 1 个 RadioButtonList,其中包含 3 个项目(RadioButtons)。以下 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,因为它与第三个具有相同的值,但在列表中排在第一位。

更改其中一个相同的值可以解决此问题。

【问题讨论】:

    标签: asp.net radiobuttonlist


    【解决方案1】:

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

    <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>

    【讨论】:

    • 我现在没有,但我知道它不起作用。如果我有一个包含 3 个项目的 RadioButtonList:Item1(Index = 0,Value = 100),Item2(Index = 1,Value = 200)和 Item3(Index = 2,Value = 200)。现在,如果我想获取 RadioButtonList1.SelectedItem.Value 并选择了 Item3,这将返回 Item2 的值,因为它是第一个值为 200 的项目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多