【问题标题】:Form submitting using jquery without ajax in rails在rails中使用没有ajax的jquery提交表单
【发布时间】:2013-11-11 07:06:00
【问题描述】:

我是 rails 新手。我想通过从下拉列表中选择值来使用 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%>

在这里,我不确定 :category 是什么意思? 用于提交表单的 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 开始 GET "/en/categories/tshart/sort_item?utf8=%E2%9C%93&order_by=Pirce" for 127.0.0.1 CategoriesController#sort_item 处理为 HTML 参数:{"utf8"=>"✓", "order_by"=>"Pirce", "locale"=>"en", "id"=>"tshart"} 类别负载 (0.3ms) SELECT categories.* FROM categories WHERE categories.slug = 'tshart' LIMIT 1

重定向到http://test.com/en/categories/tshart 过滤器链因 :find_category 呈现或重定向而停止 6.7ms 完成 301 Moved Permanently (ActiveRecord: 0.3ms)

请记住 test.com 代表 localhost:3000 。

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

请帮助我。 提前致谢。

【问题讨论】:

    标签: javascript jquery ruby-on-rails forms submit


    【解决方案1】:

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

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

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

    【讨论】:

    • 我的错误。它已经在文档中准备好了。它访问了所需的 url @jai
    【解决方案2】:

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

    重定向到 http://test.com/en/categories/tshart 过滤器链因 :find_category 渲染或重定向而停止 已完成 301 已在 6.7 毫秒内永久移动(ActiveRecord:0.3 毫秒)

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

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

    感谢@jai 的帮助。

    【讨论】:

      猜你喜欢
      • 2021-12-21
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多