Javascript JQuery DOM操作和事件触发器
我正在尝试为一个新的rails应用程序构建一个简单的就地编辑功能。为此,我需要更改以保存数据 如何从顶部获取div信息并将其输入到我的隐藏表单:内容中以保存我的在位编辑更改 我当前的show.html页面如下Javascript JQuery DOM操作和事件触发器,javascript,jquery,html,ruby-on-rails,ruby-on-rails-4,Javascript,Jquery,Html,Ruby On Rails,Ruby On Rails 4,我正在尝试为一个新的rails应用程序构建一个简单的就地编辑功能。为此,我需要更改以保存数据 如何从顶部获取div信息并将其输入到我的隐藏表单:内容中以保存我的在位编辑更改 我当前的show.html页面如下 <p id="notice"><%= notice %></p> <div id="body_editable" class="editable"> <%= @article.content %> </div>
<p id="notice"><%= notice %></p>
<div id="body_editable" class="editable">
<%= @article.content %>
</div>
<%= form_for(@article) do |f| %>
<%= f.label :content %><br>
<%= f.hidden_field :content %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
<script>
var editor = new MediumEditor('.editable');
</script>
但我不知道如何使用rails提交按钮触发保存事件,请尝试:
$('select your submit').click(function(e){
e.preventDefault();
$('#article_content').val(editor.serialize().body_editable.value);
$(this).closest('form').submit();
});
虽然Alex的答案可行,但更安全的做法是:
$('form[for=article]').submit(function(e){
e.preventDefault();
$('hidden-field').val($('#body_editable').text());
$(this).submit();
});
通过这种方式,它可以获取特定的元素并避免内存泄漏,方法是使用返回值的函数,而不是获取本机值,当您将内容设置为
someElement时,本机值会在内存中分配一个新地址。value
捕获表单的提交事件,复制该值,然后提交()
大概是这样的:
$('form[id^="edit_article"]').on('submit', function(e) {
e.preventDefault();
$('#article_content').val(editor.serialize().body_editable.value);
$(this).submit()
return false;
});
一个更具描述性的标题会更好。抱歉@jthomas,我开始键入,在困惑中再也没有返回到标题中正确解释。我尝试将其输入到articles.js中,有很多变体,但它仍然提交当前的articles.content,而没有切换它。我已经使用rails一段时间了,但对javascript知之甚少。我甚至不知道提交按钮是否触发了js。如何将submit按钮绑定到javascript?
$()。submit(回调)
将处理在type=submit
时点击submit按钮,以及在焦点表单上点击enter按钮的情况。
$('form[id^="edit_article"]').on('submit', function(e) {
e.preventDefault();
$('#article_content').val(editor.serialize().body_editable.value);
$(this).submit()
return false;
});