【问题标题】:How to prevent form remote submit in grails?如何防止表单在grails中远程提交?
【发布时间】:2014-01-09 08:44:34
【问题描述】:
<g:formRemote name="form1" update="homeBody" 
              url="[controller: 'xxx', action:'aaa']">       
<Button type="submit">Save</Button>    
</g:formRemote>

我的情况是在表单之外有一个文本字段。该值由javascript函数设置。

如果文本字段有值,表单将提交。如果没有,我必须阻止表单提交。如何做到这一点?

【问题讨论】:

    标签: javascript ajax grails gsp


    【解决方案1】:

    grails 标签g:remoteForm 可以有一个before 属性。根据 Grails 文档,该属性的值是:

    在远程函数调用之前调用的 JavaScript 函数。分号会自动添加,因此您不必在此字符串中自己提供分号。

    所以你可以通过这种方式阻止表单提交:

    <g:formRemote name="form1" update="homeBody" 
                  url="[controller: 'xxx', action:'aaa']"
                  before="return checkTheField()">
        <Button type="submit">Save</Button>    
    </g:formRemote>
    

    其中 checkTheField() 是一个 javascript 函数,根据字段检查结果返回 truefalse

    附:我建议你使用 grails g:submitButton 标签而不是普通的 HTML Button 标签来统一。

    【讨论】:

    • 感谢您的回复 Alex.i 使用了这个。我从以前调用 js 函数。我收到错误,例如未定义该功能。但是如果我之前写过代码,它就可以完美地工作。这里有什么问题。
    • 您应该在外部 *.js 文件中定义您的函数,例如在 application.js 中。然后你必须通过 将这个文件附加到你的 gsp 模板中。有关资源的更多信息,请查看:grails.org/doc/latest/guide/theWebLayer.html#resources
    猜你喜欢
    • 2013-08-31
    • 2012-10-07
    • 2012-05-26
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    • 2016-06-30
    相关资源
    最近更新 更多