客户端验证
最后,还需要执行一些客户端验证,以确保 departureAirport 和 arrivalAirport 的无效值不会提交回服务器(事实上,在为用户提供选择字段或一组复选框时,不可能输入无效值。由于我允许用户输入任意格式的文本,所以我需要留意他们的输入质量)。
将 onSubmit 添加到 g:form 标记:
<g:form action="save" method="post" onsubmit="return validate()" >
清单 17. validate 函数
function validate(){
if( $F("departureAirport.id") == -1 ){
alert("Please supply a valid Departure Airport")
return false
}
if( $F("arrivalAirport.id") == -1 ){
alert("Please supply a valid Arrival Airport")
return false
}
return true
}
if( $F("departureAirport.id") == -1 ){
alert("Please supply a valid Departure Airport")
return false
}
if( $F("arrivalAirport.id") == -1 ){
alert("Please supply a valid Arrival Airport")
return false
}
return true
}
如果您觉得将选择字段转换为文本字段需要更多的工作,我同意您的观点。我没有执行这个更改以便更容易操作 — 我努力使最终用户更容易操作。但是请注意:Grails 提供的搭建功能为我了做了很多初始工作,我可以对各个部分进行一些调优。搭建功能并不意味着是全部完成。它只是避免了所有令人厌烦的事情,您可以专注于更有趣的工作。