2015-04-01 2 views
0

Мне было интересно узнать свойство «Значение» элемента в RadioButtonList.RadioButtonList и их свойство «Значение»

Если я хочу получить значение выбранной радиокнопки, которая находится в списке, они должны быть уникальными или автоматически выбрать первый элемент, который он найдет, со значением, которое я ищу. Таким образом, нет повторяющихся значений.

Почему это? Я просмотрел сеть, использовал их, и поэтому я знаю, КАК это работает, но я хотел бы знать, ПОЧЕМУ он работает таким образом.

Если я выбираю элемент в списке, он знает, какой элемент я выбрал. Кнопка заполняется, вы можете получить индекс выбранного элемента ... так почему он не идет: «Хорошо, вы выбрали элемент по индексу X. Вы также хотите получить значение? Хорошо, позвольте мне получить доступ к перейдите к элементу X и получите его значение ».

Я могу только думать, что когда вы хотите значение предмета, оно ищет по значению, а не по индексу, а затем по значению?

UPDATE 1: В моем конкретном случае я делаю это:

У меня есть 1 RadioButtonList, который имеет 3 пунктов (радиокнопки) в нем. Следующий выбор ... Случай происходит внутри нажатия кнопки.

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, потому что он имеет то же значение, что и третье, но входит первым в список.

Изменение одного из идентичных значений фиксирует это.

ответ

0

Не уверен, что я полностью понимаю, у вас есть свой HTML-скрипт для обмена? У вас может быть проблема, если вы используете дубликаты идентификаторов для группировки набора радиокнопок; вы должны просто использовать атрибут с тем же именем. В этом случае, если вы попытаетесь получить значение с помощью 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

+0

Я обновил свое оригинальное сообщение. – Bill

Смежные вопросы