Javascript 如何在grails中防止表单远程提交? 拯救

Javascript 如何在grails中防止表单远程提交? 拯救,javascript,ajax,grails,gsp,Javascript,Ajax,Grails,Gsp,我必须在表单之外有一个文本字段。该值由javascript函数设置 如果文本字段有值,则表单将提交。如果没有,我必须阻止表单提交。如何做到这一点?grails标记g:remoteForm可以有一个before属性。根据Grails文档,该属性的值为: 要在远程函数调用之前调用的JavaScript函数。自动添加分号,因此您不必在该字符串中自己提供分号 因此,您可以通过以下方式防止表单提交: <g:formRemote name="form1" update="homeBody"

我必须在表单之外有一个文本字段。该值由javascript函数设置


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

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

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

因此,您可以通过以下方式防止表单提交:

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

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


另外,我建议您使用grailsg:submitButton标记,而不是普通的HTML按钮标记,以确保一致性。

谢谢您的回复Alex。我使用了这个。我以前调用过js函数。我得到了一个错误,比如函数没有定义。但是如果我以前写过代码,它就可以完美地工作。这里的问题是什么。您应该在外部*.js文件中定义您的函数,例如在application.js中。然后您必须通过和在head部分将此文件附加到gsp模板。有关资源的更多信息,请查看以下内容:
<g:formRemote name="form1" update="homeBody" 
              url="[controller: 'xxx', action:'aaa']"
              before="return checkTheField()">
    <Button type="submit">Save</Button>    
</g:formRemote>