技术开发 频道

精通 Grails: 使用 Ajax 实现多对多关系

  客户端验证

  最后,还需要执行一些客户端验证,以确保 departureAirport 和 arrivalAirport 的无效值不会提交回服务器(事实上,在为用户提供选择字段或一组复选框时,不可能输入无效值。由于我允许用户输入任意格式的文本,所以我需要留意他们的输入质量)。

  将 onSubmit 添加到 g:form 标记:

<g:form action="save" method="post" onsubmit="return validate()" >

  如果 validate 返回 true,则表单被提交到服务器。如果返回 false,则提交被取消。清单 17 展示了 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
}

  如果您觉得将选择字段转换为文本字段需要更多的工作,我同意您的观点。我没有执行这个更改以便更容易操作 — 我努力使最终用户更容易操作。但是请注意:Grails 提供的搭建功能为我了做了很多初始工作,我可以对各个部分进行一些调优。搭建功能并不意味着是全部完成。它只是避免了所有令人厌烦的事情,您可以专注于更有趣的工作。

0
相关文章