javascript - 如何使用 onclick 提交 Rails AJAX 表单

标签 javascript jquery ruby-on-rails ajax forms

如何使用按钮在 Rails 中提交 AJAX 表单?

我的代码:

Controller:

def list
  @events = ExternalEvent.all
  if !params[:city_id].nil?
    @events = @events.where(city_id: params[:city_id])
  end
  respond_to do |format|
    format.js
    format.html
  end
end

list.js.erb:

$('#events').html("<%= j render 'events' %>");

list.erb:

<%= javascript_include_tag "jquery" %>
<%= javascript_include_tag "application" %>
<div id='events'>
  <%= render 'events' %>
</div>

_events.erb:

<%= form_tag('/list', remote: true) do %>
  <input name='city_id' value='2'>
  <input type='Submit'>
<% end %>
<table>
  <% for event in @events %>
    <tr>
      <td>
        <%= event.name %>
      </td>
    </tr>
  <% end %>
</table>

点击提交后,AJAX 表单提交成功。

但是我如何从表单外部提交表单。 使用

<input type='button' onclick="document.getElementById('get_event').onsubmit()" value="Change City">

返回一个 JavaScript 错误

Uncaught TypeError: object is not a function
  onclick

如何在外部提交此表单?

最佳答案

使用以下方式

<form id="get_event">
<input type='button' onclick="document.getElementById('get_event').submit();" value="Change City">
    </form>

issubmit() 不是一个函数,但 submit() 是。

对于 AJAX 使用 Ajax 调用提交表单而无需重新加载页面:

<form id="get_event">
<input type='button' onclick="submitFrmAjax();" value="Change City">
</form>

<script>
    function submitFrmAjax(){
       $.ajax({
    //Your ajax code here to submit from via AJAX. refer jquery site . I gave sample eg.
             url : "Your URL or file name on server",
             data : $("form").serialize()
        });
    }
</script>

Demo for Regular Submit

Demo : Sample ajax submit , see network tab in firebug

关于javascript - 如何使用 onclick 提交 Rails AJAX 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28577751/

相关文章:

javascript - 从 bootstrap 的模态框返回一个值是或否选项

javascript - 如何在 node.js 项目中为 vscode intellisense 在本地使用 .d.ts 类型?

javascript - eslint 中只有箭头函数?

jquery - 无法选择在 Firefox/Chrome/Safari 中有效,在 IE8 中无效

ruby-on-rails - 如果条件与 &&,是否有任何性能提升

javascript - Jquery on click 函数在页面加载时调用

javascript - jQuery 用 HTML 替换字母

javascript - Ajax post 不向 MVC Controller 传递任何数据

ruby-on-rails - 水星 : SyntaxError: cannot return a value from a constructor

ruby-on-rails - 如何将属于 "has many :through"一半的项目分配给关联的另一半?