今天写代码的时候突然发现 我之前在Rails3中使用ajax的方式是不太正确的,我走了弯路。
我之前在Rails3项目中使用ajax是这样的:
如果是直接发送一个ajax请求,我就给标签加上:remote => true。如果我在此基础上还要做其它的操作,如ajax表单提交前要对表单字段验证,我之前以为那样UJS就不能搞定了,需要我自己写代码来处理。然后我就使用jquery中的相关ajax操作来处理。
今天我才了解到UJS的AJAX操作已经为我们提供了6个自定义事件方法:
1 2 3 4 5 6 | |
所以对于上面我说的那个事例,如果要对一个ajax表单在提交前作表单验证或者其它的一些检查,只需要写提交前的检查代码,然后通过事件绑定的方式,将余下的表单ajax提交让UJS来完成,这是多么地简单啊,我以前真是做了好多无用功。
1 2 3 4 5 6 7 | |
参考资料
Using Unobtrusive JavaScript and AJAX with Rails 3 Rails 3 Remote Links and Forms Part 2: Data-type (with jQuery)