【问题标题】:How do I alter request parameters before posting XHR action in Ruby On Rails?在 Ruby On Rails 中发布 XHR 操作之前如何更改请求参数?
【发布时间】:2009-05-17 18:18:22
【问题描述】:

我有一个表格,其中包含人员列表,旁边有复选框。然后我有一个submit_to_remote,它将把被检查的人传递给控制器​​进行处理。它目前通过以下形式的检查人员:

checkbox_name => checkbox_value

其中checkbox_valueperson_id。这来自使用parameters:Form.serialize(this.form) 的原型 构建参数。

但是,由于submit_to_remote 按钮是一个“禁用”按钮,我想要一个看起来像这样的操作:

people/disable/person_id1,person_id2,person_id3 

这会禁用这些人,而且我认为语法对 API 更友好。

如何在 Ajax 更新程序提交之前使用 submit_to_remote 帮助程序中的选项更改参数?

【问题讨论】:

    标签: ruby-on-rails ajax xmlhttprequest prototypejs


    【解决方案1】:

    使用 Form.serialize(true) 获取以参数名称为键的哈希。

    您可以对该哈希执行任何操作,包括删除输入、更改其值、过滤它们等等。

    Ajax.Updated 然后将接受修改后的哈希作为参数。

    哦,如果你想要这个表单的另一个目标,只需指定它!如果我没记错的话,这是第一个参数。

    【讨论】:

    • 我在哪里做呢?我正在使用 submit_to_remote 助手和 ruby​​ on rails,我想在用户按下提交但在发出请求之前执行此操作
    • 好吧,您必须编写一些 javascript 才能使其正常工作。然后你可以把它放到onsubmit中,如果你愿意,可以在submit_to_remote的options中指定。
    • 也许我的问题不够清楚。我明白这是如何工作的。我只是不知道如何正确挂钩 ROR 中的代码。
    • 我推荐“只编写该死的 javascript 代码”模式。你正在尝试做一件棘手的事情;是的,你是。所以只需使用一个棘手的解决方案。否则,做一件愚蠢的事情 - 只需按原样提交表单并在控制器中计算出来。反正没人关心你的 AJAX url。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多