我正在使用一个简单的表单,我通过Grails< formRemote>标签。这工作正常并且符合预期。最近我将 jqbootstrapvalidaton .js添加到我的项目中,以便在我的简单表单上添加一些验证。当这样做并在我的表单上按提交时,表单现在将POST 已定义的每个元素(例如,如果我有5个表单元素,当我使用Grails时按下提交时,我将获得5个POST提交formRemote和jqBootstrapvalidation)。
例如,请考虑以下表格:
<g:formRemote name="sampleForm" url="[controller: 'test', action: 'demo']" >
<input type="text" name="myy" id="myy" value="" required />
<input type="text" name="myo" id="myo" value="" required />
<input type="submit" name="submit" value="Submit" />
</g:formRemote>
如您所见,表单有2个输入变量和1个提交按钮。通常情况下(当不使用 jqbootstrapvalidaton 时),我可以提交此表单,它会将一个时间发送到我的控制器。
然而,自从将 jqbootstrapvalidaton 引入此简单表单后,我点击提交时会收到3个POST提交。
我页面上唯一的其他代码是:
$(function () {
$("input,select,textarea").not("[type=submit]").jqBootstrapValidation();
}
我用它来设置验证。
有没有人经历过类似的事情?有关如何将此表单仅发布到一个时间而不是为每个表单元素进行POST的任何建议都会很棒!
提前致谢。
答案 0 :(得分:0)
您必须使用jqBootstrapValidation本身通过ajax提交表单。 如果没有任何错误,它有一个提交表单的方法。 示例代码如下:
$(function () { $("input,select,textarea").not("[type=submit]").jqBootstrapValidation({
preventSubmit: false,
submitSuccess: function (form, event) {
event.preventDefault();
dosubmit(form);///your javascript function to submit
},
submitError: function (form, event, errors) {
event.preventDefault();
}
}); } );