【发布时间】:2015-11-24 01:33:13
【问题描述】:
当一个rails表单在前端失败时,javascript是如何处理的?例如数值错误失败或必需:未满足 true 选项。
我想为此添加一个回调函数。有没有办法在失败时执行一些javascript?
【问题讨论】:
标签: ruby-on-rails forms ruby-on-rails-4
当一个rails表单在前端失败时,javascript是如何处理的?例如数值错误失败或必需:未满足 true 选项。
我想为此添加一个回调函数。有没有办法在失败时执行一些javascript?
【问题讨论】:
标签: ruby-on-rails forms ruby-on-rails-4
在 Rails 表单上呈现错误时不涉及任何 javascript。错误的显示方式由一个名为field_error_proc 的函数决定,特别是ActionView::Base.field_error_proc。你可以查看 Ryan Bates 的 railcast 了解它
如果您通过 AJAX 提交表单,您可以为 ajax:success 事件附加一个侦听器。否则我能想象的唯一(丑陋的)方法是做这样的事情:
$(document).on('app:form-has-errors', function() { //do what you have to do} 并在视图中
<script>$(document).trigger('app:form-has-errors');</script> 如果表单中的对象有错误 (@your_object.errors.any?)。
我认为这是不可能的,因为提交和重新呈现错误是完整的 http 请求,它将清除您可能绑定到文档的任何事件。
【讨论】:
Rails 内置验证不在前端(客户端)上运行,而是在服务器上完成。
如果你想做 javascript 验证,你需要为此找到一个 gem,或者使用一个 jQuery 库,或者自己编写验证代码。
使用 vanilla Rails 时进行表单验证的正常方式是这样的
【讨论】: