【问题标题】:Grails formRemote with jQBootStrapValidator带有 jQ​​BootStrapValidator 的 Grails formRemote
【发布时间】:2013-03-07 04:34:11
【问题描述】:

我正在处理一个通过 Grails 标签提交的简单表单。这工作正常且符合预期。最近我将 jqbootstrapvalidaton.js 添加到我的项目中,以便在我的简单表单上添加一些验证。执行此操作并在我的表单上按提交时,表单现在将为定义的每个元素发布(例如,如果我有 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();
}

我用于设置验证。

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

提前致谢。

【问题讨论】:

    标签: jquery ajax forms grails


    【解决方案1】:

    您必须使用 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();
             }
        }); } );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-07
      • 2016-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多