2014-01-09 78 views
1
<g:formRemote name="form1" update="homeBody" 
       url="[controller: 'xxx', action:'aaa']">  
<Button type="submit">Save</Button>  
</g:formRemote> 

我有一種情況在窗體之外有一個文本字段。該值由javascript函數設置。如何防止在grails中遠程提交表單?

如果文本字段有值,表單將提交。如果不是,我必須阻止表單提交。這個怎麼做?

回答

1

Grails的標籤克:remoteForm可以具有之前屬性。根據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函數,該函數返回根據現場檢查結果。

P.S.我建議你使用grails g:submitButton標籤而不是純HTML 按鈕標籤的一致性。

+0

謝謝你的回覆Alex.i使用了這個。我之前稱之爲js函數。我得到的錯誤就像那個函數沒有定義一樣。但是如果我之前編寫代碼,它完美地工作。這裏有什麼問題。 – Visme

+1

您應該在外部* .js文件中定義您的函數,例如,在application.js中。然後你必須通過頭部分的將這個文件附加到你的gsp模板。有關資源的更多信息,請查看:http://grails.org/doc/latest/guide/theWebLayer.html#resources –