JavaScript 绑定表单改变为表单提交

hujoy · 2012年05月29日 · 最后由 Ddl1st 回复于 2012年05月30日 · 3076 次阅读
# 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()
需要 登录 后方可回复, 如果你还没有账号请 注册新账号