我有2个模型 - project
和todo
(项目有许多待办事项)。我写了一个表单,将作业添加到托盘中选择的项目中,但不幸的是,这种添加并不总是如此。在我的项目的条件下,提交按钮应该是一个链接,由我实现
<%= link_to 'OK', "#", :onclick => "$('#form_id').submit()" %>
表单工作正常,直到我将提交按钮更改为链接,然后有时它正常工作,有时它不会
<h1> Новая задача </h1>
<%= form_with scope: :todo, url: todos_path, id: :form_id, local: true do |form| %>
<p>
<% form.label :text %><br>
<%= form.text_field :text, placeholder: "Название задачи" %>
</p>
<%= form.select( :project_id, options_from_collection_for_select(Project.all, :id, :title)) %>
<p>
<a href="/projects">ОТМЕНА</a>
<%= link_to 'OK', "#", :onclick => "$('#form_id').submit()" %>
</p>
<% end %>
我也尝试在css中写一个像link_to这样的按钮,但是由于我无法找到最佳的字母厚度,我被迫放弃了这样的操作。
答案 0 :(得分:0)
你为什么使用提交onclick?
只需使用通常的提交:
<%= form.submit 'OK' %>
答案 1 :(得分:0)
如果链接仅是您的要求,则只需使用link_to
帮助link_to_function
而不是link_to_function 'ok', 'function_call_here'
。
on click
另一件事是将jquery代码放在$('#ok-link').click(function (event) {
event.preventDefault(); // Prevent link from following its href
submit_your_form_here();
});
只是使用观察者
$( "#ok-link" ).on( "click", function() {
console.log( $( this ).text() );
});
如果您的ok链接是动态生成的,则更改点击jquery here
的功能{{1}}
我建议您使用提交或按钮标签,并根据您的需要制作适合的CSS。
您可以找到link_to_function说明here