我的目标是保存当前光标位置并为我们输入的每个新按钮添加新值。为了实现它,我试图发送ajax请求并更新我的后端,每次焦点都是输入的焦点领域。 我成功通过支持bean动作方法调用之前调用java脚本函数。但由于某种原因,我无法在发出ajax请求时看到我的请求参数值。
<p:inputText id="testing1" value="#{dropDownView.city}">
<p:ajax event="keyup" onstart="callOnAjax();" listener="#{dropDownView.assignCity()}" execute="@this" update="out1" >
<f:param value="test" name="#{articlePromo.promocionArticuloId}"/>
<h:inputHidden id="x" value="#{bean.x}" />
</p:ajax>
<script type="text/javascript">
function callOnAjax(){
$("#detailsPanel").bind("keydown keypress mousemove", function() {
var $form = jQuery(this).closest("form");
$form.find("input[id$=':x']").val($(this).caret().start);
alert("Current position: " + $(this).caret().start);
});
}
</script>
在我的dropDownView控制器
中public void assignCity()
{
System.out.println("positon of x"+getX()+"position of y"+y);
FacesContext context = FacesContext.getCurrentInstance();
String id = context.getApplication().evaluateExpressionGet(context, "#{articlePromo.promocionArticuloId}", String.class);
city =country;
}
我尝试了所有不同的方法也使用隐藏。但我没有看到我的控制器中的值。我甚至硬编码请求参数值和隐藏的属性值。但仍然没有成功。任何帮助非常感谢。