Как определить, какой переключатель был нажат в h: selectOneRadio с помощью javascript или rich: jQuery?

#jquery #jsf-2 #richfaces

#jquery #jsf-2 #richfaces

Вопрос:

Как определить, какой переключатель был нажат в h: selectOneRadio, используя javascript или, может быть, jquery?

Я уже могу это сделать, используя valueChangeListener и a4j: support из управляемого компонента. Я хочу не идти на сервер, а просто использовать jquery только для повышения производительности, потому что иногда требуется время, прежде чем ответ сервера вернется.

Я хочу, чтобы при нажатии на переключатель отключались некоторые из моих компонентов.

Вот код.

 <h:selectOneRadio id="isPrivate" valueChangeListener="#{someBean.changeRadio}">
                    <a4j:support event="onchange" reRender="sp" />            
                    <f:selectItem id="isPrivate0" itemLabel="No" itemValue="false"/>
                    <f:selectItem id="isPrivate1" itemLabel="Yes" itemValue="true"/>         
                </h:selectOneRadio>
  

Заранее спасибо.
🙂

Комментарии:

1. » Я хочу, чтобы при нажатии на переключатель отключались некоторые из моих компонентов». — Я надеюсь, что вы хорошо знаете, что, поскольку вы хотите отключить их только на стороне клиента (а не на стороне сервера (JSF)), хакер все равно может легко отправить значения этим компонентам, просто подделав запрос.

2. спасибо за ваш ответ. я думаю, я буду придерживаться своей текущей реализации. ^^,

Ответ №1:

Лучше прикрепить событие изменения к каждой переключающей кнопке в списке при загрузке документа.

 $(function()
{
    $('table[id$="isPrivate"] input:radio',this).each(function (){ 
                $(this).change(function (event) { 

                //do disabling here
                //$(this).val() - will return the value of radiobutton
                });
    }); 
});
  

Ответ №2:

с помощью jQuery:

 jQuery('input[name=isPrivate]:checked').val()
  

пример:

 if (jQuery('input[name=isPrivate]:checked').val() == "true") {
    //yes
}
  

Ответ №3:

Вам нужно будет найти <input type='radio' …/> элементы, которые генерирует JSF, и прослушать событие изменения, используя, скажем, jQuery .change() .