Java jQuery表单提交在JSF中不起作用?
我有一个JSf表单,我正在尝试使用jQueryUI对话框插件来提交表单。 下面是代码片段Java jQuery表单提交在JSF中不起作用?,java,jquery,jquery-ui,jsf,Java,Jquery,Jquery Ui,Jsf,我有一个JSf表单,我正在尝试使用jQueryUI对话框插件来提交表单。 下面是代码片段 function confirmSubmit() { $('#dialog').dialog('open'); return false; } $('#dialog').dialog({ autoOpen : false, width : 400, modal : true, res
function confirmSubmit() {
$('#dialog').dialog('open');
return false;
}
$('#dialog').dialog({
autoOpen : false,
width : 400,
modal : true,
resizable : false,
buttons : {
"Submit Form" : function() {
document.myForm.submit();
},
"Cancel" : function() {
$(this).dialog("close");
}
}
});
<h:form id="myForm">
<h:commandLink action="#{Bean.search}" type="submit" onclick="return confirmSubmit()" id="search" styleClass="buttonSearch">
</h:commandLink>
函数confirmSubmit(){
$('dialog')。dialog('open');
返回false;
}
$('#dialog')。dialog({
自动打开:错误,
宽度:400,
莫代尔:是的,
可调整大小:false,
按钮:{
“提交表单”:函数(){
document.myForm.submit();
},
“取消”:函数(){
$(此).dialog(“关闭”);
}
}
});
对话框中的“document.myForm.submit();”部分不起作用,即没有调用服务器,在服务器控制台中我看到错误:
11:45:32738严重[生命周期]
JSF1054:(阶段ID:RENDER_响应6,
视图ID:/PRT01/IMCM0101.jsp)
阶段期间引发异常
执行:
javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle。LifecycleImpl@ec333b]
对话框显示正确,但当我按下提交按钮“document.myForm.submit();”时,代码被执行,表单未被提交,而服务器控制台上出现上述错误。当
返回false时代码>它实际上不会提交
使对话框
工作
$(document).ready(function() {
var $dialog = $('<div></div>')
.html('This dialog will show every time!')
.dialog({
autoOpen : false,
width : 400,
modal : true,
resizable : false,
buttons : {
"Submit Form" : function() {
document.myForm.submit();
},
"Cancel" : function() {
$(this).dialog("close");
}
}
});
});
完成后,一些JSF参数丢失。jsf在表单提交过程中添加了它们,我使用jQuery添加了它们:
$("a[id$='search']").click(function() {
var input = $("<input>").attr("type", "hidden").attr("name", "myForm:search").val("myForm:search");
$('#myForm').append($(input));
$("p#dialog-email").html(titleVar);
$('#dialog').dialog('open');
});
$([id$='search'])。单击(函数(){
变量输入=$(“”).attr(“类型”,“隐藏”).attr(“名称”,“myForm:search”).val(“myForm:search”);
$('#myForm')。追加($(输入));
$(“对话电子邮件”).html(标题栏);
$('dialog')。dialog('open');
});
你好,Jigar,对话框正在工作我有代码如果确定要编辑,请单击“取消”。问题不在于对话框,而在于jsf中使用“document.myForm.submit();”提交表单的过程,只需尝试$(“#myForm”).submit()代码>它在服务器3:20:06255严重[lifecycle]JSF1054上给出了相同的错误:(阶段ID:RENDER_RESPONSE 6,View ID:/PRT01/IMCM0101.jsp)在阶段执行期间引发的异常:javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle。LifecycleImpl@162ad2c]现在已经修复了,一些JSF参数丢失了。jsf在表单提交过程中添加了它们,我使用jQuery$([id$='search'])添加了它们。单击(function(){var input=$(“”)。attr(“type”,“hidden”)。attr(“name”,“myForm:search”)。val(“myForm:search”);$('(myForm”)。append($(input));$((p#dialog email”)。html(titleVar);$('dialog')。dialog('open');在阶段执行期间引发了什么异常?请把它贴出来。它包含答案。你好,BalusC,我已经发布了服务器控制台显示的错误,我也在下面询问了这个问题,因为在我的表单中,我有多个命令按钮,每个按钮都指向不同的bean方法,因此在执行“document.myForm.submit()”,它没有考虑命令按钮,因为我已经做了“onclick=return false”;因为我想使用jQuery提交表单,所以我使用jQuery追加了必需的参数“myform:search”。在表单内部追加,现在它可以正常工作了。这是互联网上没有的新东西。希望它能帮助其他人。你没有发布异常。该错误只告诉在阶段执行期间引发的异常:
。这说明抛出了一个异常。我对抛出的异常感兴趣。您应该已经在日志中读了一些内容才能找到它。我刚刚仔细检查了一遍,但是在服务器日志中没有异常跟踪,只是上面的错误,在UI上,当我按下jquery对话框上的submit按钮后,整个页面被刷新,因为此请求中没有传递所需的参数“myForm:search”(使用FireBug查看参数)直到我故意使用jquery将此“myForm:search”添加为隐藏参数,只有这样调用才会进入服务器(使用eclipse调试模式,我正在监视对服务器的调用)。
$("a[id$='search']").click(function() {
var input = $("<input>").attr("type", "hidden").attr("name", "myForm:search").val("myForm:search");
$('#myForm').append($(input));
$("p#dialog-email").html(titleVar);
$('#dialog').dialog('open');
});