a4j:jsfunction没有被触发

时间:2012-10-30 08:57:53

标签: jsf ajax4jsf

我希望看到警报,不幸的是,setTempIshCaseId()的js-function-body永远不会被触发,因为Firebug-JS-Debugger告诉我。

我的jsf-Code(由表格标签包围):

<t:div id="setTempIshCaseIdContainer">
    <a4j:jsFunction name="setTempIshCaseId" reRender="debugIshCaseId" > 
    <a4j:actionparam name="tempIshCaseId" assignTo="#{CaseController.tempIshCaseId}"/> 
    </a4j:jsFunction>
    <h:outputText id="debugIshCaseId" value="#{CaseController.tempIshCaseId}" style="BACKGROUND-COLOR:red;"/>
</t:div> 
<a4j:commandLink id="preSaveCaseButton" onclick="setTempIshCaseId();" title="#{resources.labels['biobank_lims_saveTable']}" reRender="jsonpRemoteURLs,hNumberRemoteURL,eNumberRemoteURL,ishCaseRemoteURL,tempIshCaseIdContainer" oncomplete="jQuery('a#form_saveCaseButton').click()">
</a4j:commandLink>

我的javascript代码:

function setTempIshCaseId(){
    alert('BP');
    console.log("setTempIshCaseId() Start ");
    // setze den Wert des a4j-js-function action param
    var ishCaseId = jQuery('#form_ish').val(); 
    jQuery('#form_tempIshCaseId').text(ishCaseId);
    jQuery('#form_debugIshCaseId').text(ishCaseId);
    console.log("setTempIshCaseId() Ende ");
}

为什么单击preSaveCaseButton后没有调用setTempIshCaseId()?提前谢谢。

1 个答案:

答案 0 :(得分:0)

是的!问题解决了。阅读本教程后: http://mkblog.exadel.com/2010/06/using-richfaces-a4jjsfunction-sending-an-ajax-request-from-any-javascript/

很明显,我必须将actionParam-attribute的参数传递给JavaScript函数,如下所示:

onclick="setTempIshCaseId(jQuery('#form_ish').val());"