gpt4 book ai didi

java - JSF2 : Submit AJAX form

转载 作者:行者123 更新时间:2023-11-29 04:01:00 24 4
gpt4 key购买 nike

我有一个页面,其中包含一个通过 AJAX 分页的表格列表,所有这些都是自定义的。分页工作正常,但 Enter 键会清除表单输入的值而不是提交。我的提交按钮生成一个 AJAX 帖子,导致表格重新执行和重新呈现。

如何确保所有表单输入都能处理 Enter 按钮并提交 AJAX 表单?

这是我的提交按钮:

<f:ajax execute="@form" render=":formlistproposta" onevent="showProgress">
<h:commandLink styleClass="link" value="#{msg.menu_search_top_all}"
actionListener="#{propostaBean.search}" onclick="clearForm();">
</h:commandLink>
</f:ajax>

如何确保每当我在任何表单输入上按下 Enter 键时,我的 AJAX 都会被提交?

最佳答案

首先你描述的行为是正确的。在一个简单的 HTML 页面中,当在表单中按下 Enter 键时,第一个按钮将被选中并单击。在你的情况下可能是 <input type="reset"/>按钮是表单中的第一个。

我用过 prototype实现这一目标。

这是在按下 Enter 键时处理表单提交的脚本示例:

var FormSubmissionHandler = Class.create({
initialize: function(formId, submitterId) {
this.form = $(formId);
this.submitter = $(submitterId);
Event.observe(this.form, 'keypress', this.onKeyPress.bindAsEventListener(this));
},

onKeyPress: function(event) {
var code = event.keyCode;
var element = Event.element(event);
if(code == Event.KEY_RETURN) {
var nodeName = element.nodeName;
var isSelect = nodeName == 'SELECT';
var isTextArea = nodeName == 'TEXTAREA';

if(!isSelect && !isTextArea) {
Event.stop(event);
this.submitter.click();
}
}
}
});

关于java - JSF2 : Submit AJAX form,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3636000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com