我正在构建功能,允许用户评论我的网络应用中的内容。现在我有一个简单的javascript表单验证,它检查注释是否为空白且长度超过10个字符。如果不是,那么它会阻止使用preventDefault()
提交表单并在屏幕上显示错误消息。如果没有错误,它允许表单提交并重新加载带有新评论的页面。
但是我想这样做,以便当您提交表单并且没有错误时,它使用Ajax将数据提交到数据库,然后使用jQuery在页面上插入注释,这样就不会重新加载页面。
我把它设置在我的表格上就像这样:
<%= form_for(@comment, html: { class: "form-general" }, remote: true) do |f| %>
并设置我的控制器以响应该请求,如下所示:
respond_to do |format|
format.html { redirect_to request.referer }
format.js
end
然而,有一个问题,即评论中出现错误。例如,如果注释少于10个字符,则错误消息将由我的javascript验证生成,但是即使出现错误,Ajax请求也已触发。
如何才能使它只有在评论有效时才会发送Ajax请求?