Grails formRemote with jQBootStrapValidator

时间:2013-03-07 04:34:11

标签: jquery ajax forms grails

我正在使用一个简单的表单,我通过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的任何建议都会很棒!

提前致谢。

1 个答案:

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