gpt4 book ai didi

Jquery Rails 3...表单提交两次...删除两次...帮助

转载 作者:行者123 更新时间:2023-12-01 00:36:44 25 4
gpt4 key购买 nike

似乎每个人都有这个问题,但没有人有一个通俗易懂的答案,甚至没有一个正确的解决方案。

我有一个表单,它使用ajax提交表单并自动将其添加到文本字段下方的列表中。该表单提交了两次,因此我有两条相同的(除了 ID 之外)记录。更糟糕的是,当您尝试删除时,它不会更新页面,因为它尝试删除同一记录两次。

我希望有人能给出一个很好的答案......顺便说一句,我是 Rails 新手。代码:

index.html.erb

<h1>SSCC</h1>
<div id="orderline_form">
<%= render 'form' %>
</div>

<ul id="orderlines">
<%= render :partial => @orderlines.reverse %>
</ul>

_form.html.erb

<%= form_for(@orderline, :remote => true) do |f| %>
<div class="field">
<%= f.label :Order_ID %>
<%= f.text_field :order_id %><br/>
<%= f.label :SSCC %>
<%= f.text_field :sscc %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>

_order_line.html.erb

<%= content_tag_for(:li, order_line) do %>

<%= order_line.id %> |
<%= order_line.order_id %> |
<%= order_line.sscc %>
(<%= link_to 'Delete', order_line, :confirm => 'Are you sure?',
:method => :delete, :remote => true %>)

<% end %>

创建.js.erb

$('#orderlines').prepend('<%= escape_javascript(render(@orderline))%>');
$('#orderlines > li:first ').effect('highlight', {}, 3000);
$('#orderline_form > form')[0].reset();

销毁.js.erb

$('#<%= dom_id(@orderline) %>').css('background', 'red');
$('#<%= dom_id(@orderline) %>').hide("fade", {}, 1500);

最佳答案

我碰巧“application.js”被存储了两次(.../public/assets/application.js 和 .../app/assets/javascripts/application.js)。 Rails 3.2.1 Asset pipeline 编译了它并创建了另一个。检查并删除不需要的。

请记住,您可能已经有了其他重复的资源,您刚刚开始注意到这个资源,因为 jQuery 让它变得很明显。

此链接对我有帮助:

http://www.ruby.code-experiments.com/blog/2011/10/another-gotcha-with-the-rails-31-asset-pipeline-or-why-are-my-jquery-ujs-ajax-requests-triggered-twi.html

关于Jquery Rails 3...表单提交两次...删除两次...帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6747236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com