1

我正在使用通过 Grails < formRemote > 标签提交的简单表单。这工作正常且符合预期。最近我将jqbootstrapvalidaton .js 添加到我的项目中,以便在我的简单表单上添加一些验证。执行此操作并在我的表单上按提交时,表单现在将为已定义的每个单个元素发布(例如,如果我有 5 个表单元素,当我在使用 Grails 的 formRemote 和 jqBootstrapvalidation 时按提交时,我将收到 5 个 POST 提交)。

例如,请考虑以下形式:

<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();
}

我用它来设置验证。

有没有人经历过类似的事情?关于如何让这个表单只发布一次,而不是为每个表单元素发布的任何建议都会很棒!

提前致谢。

4

1 回答 1

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();
         }
    }); } );
于 2013-03-30T07:52:36.760 回答