我有一个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的值?