# Submits the form (saves data) after user makes a change $("form.rating_form").click () -> $(this).submit()
click() 事件如果改为 change(),表单改变时不能自动提交。但 click() 能正常提交。
表单改变?change 只能给 input , select 等标签绑定吧?
<%= form_tag url_for(controller: 'topics', action: 'rate', id: topic.id), :remote => true, :class => "rating_form", method: "post" do %> <input id="_assets_action_rate_controller_topics_id_28_ratings" class="rating_input" value=<%= "#{topic.rating}" %> max="5" min="0" name="ratings" size="1" step="1" type="text" style="display:none" /> <!--%= f.text_field :ratings, :size => 1, :min => 0, :max => 5, :step => 1 %--> <div class="rateit" data-rateit-backingfld="#_assets_action_rate_controller_topics_id_28_ratings" data-rateit-resetable="true" data-rateit-ispreset="true"> </div> <%= topic.rate_count %> Votes <% end %>
然后使用:
$("form.rating_form input.rating-input").change () -> $(this).parent().submit()
仍然无法绑定。
@hujoy change 确实绑定在 input 上了,不过这个 input 的 type 是 text,所以必须等输入框失去焦点的时候才会执行提交动作。 你可以参考文档 http://api.jquery.com/change/
$(this).form.submit()