问题描述
|
我有一个JSf表单,我正在尝试使用jQuery Ui对话框插件提交表单。
这是代码段。
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>
对话框中的\“ document.myForm.submit(); \”部分不起作用,即,没有调用到达服务器,并且在服务器控制台中我看到了错误:
11:45:32,738严重[生命周期]
JSF1054 :(阶段ID:RENDER_RESPONSE 6,
查看ID:/PRT01/IMCM0101.jsp)
在阶段期间引发异常
执行:
javax.faces.event.PhaseEvent [source=com.sun.faces.lifecycle.LifecycleImpl@ec333b]
该对话框正确显示,但是一旦按下提交按钮\“ document.myForm.submit(); \”,就会执行代码,并且不提交表单,而是服务器控制台上出现上述错误。
解决方法
因为您
return false;
,它实际上不会提交。
使ѭ2起作用
$(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\");
}
}
});
});
然后打电话
function confirmSubmit() {
$dialog.dialog(\'open\');
return false;
}
, 完成后,缺少一些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\');
});