2015-04-01 90 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