【发布时间】:2017-10-27 16:47:07
【问题描述】:
我一直在查看网上的帖子以及 IBM 的帖子,但我仍然对如何提交表单感到困惑。
我正在使用 formvalidation.io 验证,并且来自 CSJS,我得到验证是否正确。然后,如果正确我想提交,如果不正确就不提交。
我尝试了不同的变体,但得到了相同的结果。如果验证不正确,表单会继续正确显示并且不会提交。但是,如果验证正确,则不会提交表单。我收到错误消息 XSP.executeOnServer 不是函数,并尝试了各种方法来解决此问题,但均未成功。这是我的代码:
<xp:button value="Join Our Team" id="button1">
<xp:eventHandler event="onclick" submit="false">
<xp:this.script><![CDATA[$(document).ready(function() {
$(this).click(function(){
$("form").data('formValidation').validate();
var isValidForm = $("form").data('formValidation').isValid();
if (isValidForm){
XSP.executeOnServer('#{id:eventhandler1a}', '#{id:panel1}');
}
else {
$("form").data('formValidation').validate();
return false;
}
});
});]]></xp:this.script>
<xp:this.action><![CDATA[#{javascript:XSP.executeOnServer = function () {
// the event handler id to be executed is the first argument, and is required
if (!arguments[0])
return false;
var functionName = arguments[0];
// OPTIONAL - The Client Side ID that is partially refreshed after executing the event handler
var refreshId = (arguments[1]) ? arguments[1] : "@none";
var form = (arguments[1]) ? XSP.findForm(arguments[1]) : dojo.query('form')[0];
// catch all in case dojo element has moved object outside of form...
if (!form)
form = dojo.query('form')[0];
// OPTIONAL - Options object containing onStart, onComplete and onError functions for the call to the
// handler and subsequent partial refresh
var options = (arguments[2]) ? arguments[2] : {};
// OPTIONAL - Value to submit in $$xspsubmitvalue. can be retrieved using context.getSubmittedValue()
var submitValue = (arguments[3]) ? arguments[3] : '';
// Set the ID in $$xspsubmitid of the event handler to execute
dojo.query('[name="$$xspsubmitid"]')[0].value = functionName;
dojo.query('[name="$$xspsubmitvalue"]')[0].value = submitValue;
this._partialRefresh("post", form, refreshId, options);
} }]]></xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:panel id="panel1">
<xp:eventHandler event="onClick" submit="true" id="eventhandler1a" refreshMode="complete">
<xp:this.action>
<xp:saveDocument></xp:saveDocument>
</xp:this.action>
</xp:eventHandler>
</xp:panel>
【问题讨论】:
标签: javascript jquery validation xpages xpages-ssjs