表单提交使用 jquery 在 rails 中没有 ajax

Form submitting using jquery without ajax in rails

本文关键字:ajax rails jquery 表单提交      更新时间:2023-09-26

我是rails.i的新手,我想通过从下拉列表中选择值来使用jquery对内容进行排序。所以我在使用 jQuery 向特定控制器操作提交表单时遇到问题。我有一个有很多产品的类别模型。在我的类别显示中,我有一个像波纹管这样的表格:

    <%= form_for(:category, :url => sort_category_path, method: 'GET', :class=> " form-inline pull-left") do |f| %>
              Sort By :
              <select id ="sort" name= "order_by">
                <option>Default</option>
                <option>Name</option>
                <option>Pirce</option>
              </select>
  <%end%>

在这个表格中,我不确定:类别是什么意思?Jquery提交表单:

  $('select#sort').change(
function(e){
    $(this).closest('form').trigger('submit');
});

然后在我的类别控制器上,我有一个这样的sort_item操作:

  def sort_item
   @category_sort = Category.find(params[:id])
   @products = @category_sort.products.order("#{params[:order_by].to_s} ASC")
  end

我不知道如何发送对请求的响应。服务器日志显示:

在 2013-11-11 12:53:49 +0600 开始为 127.0.0.1 获取 "/en/categories/tshart/sort_item?utf8=%E2%9C%93&order_by=Pirce"按 CategoriesController#sort_item 作为 HTML 进行处理 参数: {"utf8"=>"✓", "order_by"=>"Pirce", "locale"=>"en", "id"=>"tshart"} 类别负载(0.3 毫秒) 从categories categories位置选择 categories .* 。slug = 'tshart' 限制 1

重定向至 http://test.com/en/categories/tshart筛选器链因 :find_category 呈现或重定向而停止完成 301 在 6.7ms 内永久移动(活动记录:0.3ms)

请记住,test.com 代表 本地主机:3000 。

想知道我在这里做错了什么,为什么排序不起作用,或者有没有更好的方法来完成我的排序任务?

请帮助我.提前谢谢。

尝试将change事件放入doc ready处理程序中:

$(function(){ // <----enclosed in document ready
    $('select#sort').change(function(e){
       $(this).closest('form').trigger('submit');
    });
});

这将查找 dom 是否已准备好在元素上绑定 js 事件。

哇,

它现在可以工作了。这是我之前解释的路由问题。问题是:

重定向至 http://test.com/en/categories/tshart 筛选器链因 :find_category 呈现或重定向而停止 已完成 301 在 6.7 毫秒内永久移动(活动记录:0.3 毫秒)

在这里,我的请求被重定向到另一个操作,然后我删除了过滤器链,然后将 render:show 添加到我的类别控制器sort_item操作。 现在它只是摇摆.其他一切都保持不变。

希望这个问题可以帮助其他人。

感谢您@jai的帮助。