无法在onclick方法中传递参数

Unable to pass parameter in onclick method

本文关键字:参数 方法 onclick      更新时间:2024-01-15

我有一个丰富的模态面板。在里面我有一个丰富的:挑选名单。我在同一个面板上有一个保存按钮。当我点击Save按钮时,我想将所选的id作为参数发送到按钮的onclick属性中。(我使用的是:commandLink按钮)。但无论如何,我无法发送参数。当我在javascript方法中使用alert检查它时,它显示为null。

我的富人:选择名单代码是

<h:panelGroup id="distTypesPanel">  
    <div class="form-row fl" style="height: 180px; width: 400px;">  
        <label for="dist_type">Distribution Type:<span  
            class="required">*</span> <h:message for="distTypesList"  
            errorClass="error" />  
        </label>  
        <rich:pickList id="distTypesList" copyAllControlLabel=" "  
            copyControlLabel=" " removeControlLabel=" "   
            removeAllControlLabel=" " value="#{asset.selectedDistTypes}"  
            converter="javax.faces.Integer">  
            <f:selectItems  
                value="#{lookupManager.setUpDMRLkpDistTypeMap()}" />  
        </rich:pickList>  
    </div>  
</h:panelGroup>  

保存按钮代码为:

<a:commandLink  styleClass="btn green-btn save-btn fr"  onclick="updateLOB(#{asset.selectedDistTypes})" reRender="updateLOBPanel"  
    oncomplete="Richfaces.hideModalPanel('updateLOBPanel');document.getElementById('lobMasterCheckBox').checked=false;"   
    ajaxSingle="true" style="margin: 10px; align:right;" >  
<span> Save </span>   
</a:commandLink>  

Javascript方法是:

function updateLOB(selectedDistTypes){
    alert(selectedDistTypes);
    var idList = jQuery("#assetSearchResults").jqGrid('getDataIDs');
    var idListToUpdateLOB = idList.join(",");
    if(idListToUpdateLOB.length >0){
        updateLOBOfAssets(idListToUpdateLOB);
    }
}

Js功能:

<a:jsFunction name="updateLOBOfAssets" oncomplete="gridReload();"
           action="#{assetManager.updateLOB()}" ajaxSingle="true">
           <a:actionparam name="param1" assignTo="#{assetManager.idList}" />
        </a:jsFunction>

selectedDistTypes为null。你能帮我正确发送参数吗?

当页面被呈现时,所有EL表达式都被解析。这意味着您的commandButton设置为onclick="updateLOB([])",因为在呈现按钮时列表为空。

有几种方法可以做您想做的事情,但我不知道您对updateLOBOfAssets函数中的ID做了什么。最简单的方法可能是从bean中检索ID,而不是用JavaScript传递它们。

这有帮助吗?

onclick="updateLOB('#{asset.selectedDistTypes}')"

看起来你没有引用价值。