The g:remoteForm tag in Grails has a before attribute that allows you to specify a JavaScript function to call before the remote function is executed. According to the Grails documentation:
The JavaScript function to call before the remote function call. A semi-colon is automatically added so you don't have to provide one yourself in this string.
This means you can prevent form submission by using this attribute, like in the example below:
<g:formRemote name="form1" update="homeBody"
url="[controller: 'xxx', action:'aaa']"
before="return checkTheField()">
<g:submitButton type="submit">Save</g:submitButton>
</g:formRemote>
In this example, checkTheField() is a javascript function that returns true or false based on the result of field checking.
P.S. It's recommended to use the g:submitButton tag provided by Grails instead of the plain HTML Button tag for consistency.