从javascript到jsf支持bean

时间:2016-09-26 14:58:58

标签: ajax jsf

我有一个orderList填充了一些对象。这种对象有一些字段包含字段代码。

我想在删除按钮时从订单列表中删除多个选定的选项。为了实现这一点,我编写了一个javascript函数,它获取了orderlist中所选项的代码,并设置了inputText的值(后者将是inputHidden)。

function isDelBtnClicked() {
   var selectedLi = $('.ui-state-highlight');
   var codes = "";
   var inputHiddenCodes = document.getElementById('form:inptHCodes');
   for (var i = 0; i < selectedLi.length; i++) {
        codes += selectedLi[i].attributes[1].nodeValue + ";";
   }
   inputHiddenCodes.value = codes;
}

isDelBtnClicked()设置下面的inputText的值:

<h:inputText id="inptHCodes"
             value="#{questionnaireExtendedKeyAttribute.selectedInputCodes}" />

我有一个方法removeSelctedChoices,它应该迭代orderlist中显示的对象列表,并删除那些具有处理inputText值的代码。因此,该方法应该将inputText的值拆分为“;”,处理并删除包含当前代码的元素。

现在,我必须找到一种方法来将javascript函数设置的inputText值保存到我的支持bean。

我试过了:

 <h:inputText id="inptHCodes" value="#{bean.selectedInputCodes}">

认为value =“#{bean.selectedInputCodes}会将selectedInputCodes设置在支持bean中。但是没有结果,selectedInputCodes为null;

我试过了:

<h:inputText id="inptHCodes" value="#{bean.selectedInputCodes}" >
    <f:ajax event="valueChange" listener="#{bean.inptHChoicesListener}"/>
</h:inputText>

认为当inputText的初始值随所选项目代码而变化时,将触发inputHChoiceListener。

public void inptHChoicesListener(AjaxBehaviorEvent abe) {
 UIInput uiinput = (UIInput) abe.getSource();
 selectedInputCodes = uiinput.getValue().toString();
}

selectedInputCodes仍为空。

删除按钮:

<p:commandButton type="button" value="remove" onclick="isDelBtnClicked()">
    <p:ajax event="click" update="choices" 
            listener="#{bean.removeSelctedChoices}"/>
</p:commandButton>

所以,最大的问题是如何在单击commandButton时获取inputTextComponent的值?

0 个答案:

没有答案