visualforce selectRadio --- как получить ссылку через Javascript? - PullRequest
1 голос
/ 20 апреля 2011

У меня есть радио-кнопка управления, и из моего Javascript я пытаюсь получить массив радиовхода через javascript getElementsByName()

Первое предупреждение: alert(radioTitleDisplay);

возвращает [object HTMLCollection]

Второе предупреждение, однако, не срабатывает.И Firebug сообщает

radioTitleDisplay.options is null.

Как мне получить доступ к переключателю.Я что-то пропустил?(Я мог бы назначить id каждому тегу от root до childs, но я не хочу этого делать, так как, если я изменяю структуру, я должен также изменить id, который не является бестактным.)

<apex:form >
   <apex:selectRadio value="{!titleDisplay}" id="titleDisplayRadio">
       <apex:selectOption itemValue="0" itemLabel="one"  />
       <apex:selectOption itemValue="1" itemLabel="two"  />
       <apex:selectOption itemValue="2" itemLabel="three"  />

       <script type="text/javascript">

          var radioTitleDisplay = document.getElementsByName('{!$Component.titleDisplayRadio}');

          alert(radioTitleDisplay);
          alert(radioTitleDisplay.options);                                     
       </script>
    </apex:selectRadio>
</apex:form>

Страница визуализированной визуальной силы, один из тегов ввода:

<input type="radio" value="2" id="thePage:j_id27:titleDisplayRadio:2" 
name="thePage:j_id27:titleDisplayRadio">

1 Ответ

1 голос
/ 20 апреля 2011

Мое предложение, используйте jQuery.Помогает безмерно, особенно для копания в итеративных и других списках.

Что вы сделали здесь, так это получили список входных html-объектов, у этого списка нет свойства options.Радиокнопки HTML DOM отключены, отсутствует центральный объект, который их всех содержит.

РЕДАКТИРОВАТЬ: Этот код, например, будет предупреждать вас о выбранном переключателе:

var myradios = document.getElementsByName('{!$Component.myRadio}');
for(i = 0; i < myradios.length; i++) 
    if(myradios[i].checked) {
        // now we now the selected index
        alert('Selected value is: ' + myradios[i].value);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...