У меня есть некоторые элементы selectBooleanCheckbox на моей странице jsf. Все элементы имеют функцию javaScript, которая привязывается к атрибуту "onchange":
<h:selectBooleanCheckbox value="#{bean.value_1}" onchange="updating(this, '#{textprop.value_1}', '#specific_html_dom_element');"/>
Кроме того, у меня есть функция createt с JQuery, чтобы выбрать все доступные selectBooleanCheckboxes на странице xhtml jsf.
Код JQuery для выбранных флажков:
jQuery('.class_1').find('input[type="checkbox"]').each(function() {
jQuery(this).attr("checked","checked").val("1");
});
Код JQuery для снятия галочки:
jQuery('.class_1').find('input[type="checkbox"]').each(function() {
jQuery(this).attr("checked","").val("0");
});
Текущая проблема заключается в том, что метод java-скрипта "обновление" не будет выполнен, если выполняется функция JQuery. Если я выберу или сниму выделение одного selectBooleanCheckbox, будет запущен метод javascript. Метод обновления получает разные значения параметров для каждого флажка.
Как я могу решить эту проблему?
onchange
только срабатывает, когда пользователь проверяет /onchange
флажок.
Вы можете вручную вызвать событие onchange после установки значения:
jQuery('.class_1').find('input[type="checkbox"]').each(function() {
jQuery(this).attr("checked","checked").val("1");
jQuery(this).change();// manual call
});
или вы можете запустить событие, используя:
jQuery('.class_1').find('input[type="checkbox"]').each(function() {
jQuery(this).attr("checked","checked").val("1");
jQuery(this).trigger("change");
});
Надеюсь это поможет.