JQuery, JSF 및 A4J : CommandLink
-
06-07-2019 - |
문제
jQuery 대화 상자를 사용하는 데 문제가 있고 JSF에서 AJAX 제출 문제가 있습니다. 대화 상자를 표시하기위한 다음 코드가 있습니다.
<script type="text/javascript">
jQuery(function(){
// Dialog
jQuery('#dialog').dialog({
dialogClass: 'alert',
autoOpen: false,
width: 300,
height: 150,
modal: true,
resizable: false,
overlay: {
backgroundColor: '#000',
opacity: 0.5
},
buttons: {
"Ok": function() {
jQuery(this).dialog("close");
return true;
},
"Cancel": function() {
jQuery(this).dialog("close");
return false;
}
}
});
// Dialog Link
jQuery('#dialog_link').click(function(){
jQuery('#dialog').dialog('open');
return false;
})
.hover(
function() { jQuery(this).addClass('ui-hover-state'); },
function() { jQuery(this).removeClass('ui-hover-state'); }
);
});
</script>
It works as it should - it displays box when link is clicked.
Now, I have something like this, for deleting something:
<a4j:commandLink
actionListener="#some.action"
reRender="something"
onclick="if(!jQuery('#dialog').dialog('open')){return false}"
ok, this commandLink is rendered as follows:
<a href="#"
id="some:long:id:j_id338"
name="formName:something:j_id338"
onclick="if(!jQuery('#dialog').dialog('open')){return
false};A4J.AJAX.Submit('something:something');
return false;"
>drop</a>
이제 대화 상자를 표시 한 후 a4j.ajax.submit (..)이 실행되고, 예를 들어, 전체 a4j.ajax.submit (...)를 "대화"로 전달하고 실행할 수 있습니다. "OK"옵션에서? 사용자가 확인을 클릭 한 경우에만 제출을 실행하면됩니다. 도와 주셔서 감사합니다 jq
해결책
정의 할 수 있습니다.
<a4j:jsFunction name="okClicked"
actionListener="#{some.action}"
reRender="something" />
그리고 OK 함수에서 호출하십시오.
"Ok": function() {
jQuery(this).dialog("close");
okClicked();
return true;
}
제휴하지 않습니다 StackOverflow