1

实际上我可以在哪里将变量传递给我的 js.erb,比如说

我有 1 个方法 create,在我的 application.js 的控制器中,我有我的 Ajax 帖子然后我有我的 create.js.erb

在我的创建表单中,我有 2 hidden_​​field_tag 在我的 create.js.erb 中,这是 ajax 成功发布并执行操作的地方,但是我如何访问 hidden_​​field 数据以执行我的逻辑以在成功时执行某些操作?

这是因为,当 js 成功时,我有 2 个不同的操作来确定我应该处理哪个操作。js.erb 实际上是如何工作的?此外,当我在 application.js 中提醒表单数据时,虽然 js 运行良好,但它不会发出警报。任何想法?

$(document).ready(function() {
  $("#new_answer").submit(function() {
    $.post(this.action, $(this).serialize(), null, "script");
    alert("you are submitting" + $(this).serialize()); //it dint work but it did post
    return false;
  })
})
4

1 回答 1

3

等等,当你这样做时,假设你的 :controller => "months" 和 :action => "march"。

我的意思是你的 $(this).action() 返回“/months/march”。

这将存储在 url 中,当您通过以下 post 方法点击该 url 时,表单元素在 params 哈希中“months”控制器的“march”操作中可用。

现在,在“result” js 变量中,整个 params 散列将可用,这实际上是您在警告。

月控制器.rb

def march

  render :text => params

end

应用程序.js

$("form#new_answer").submit(function() {  

          var data = $('form#new_answer').serialize();

          var url = $(this).action();

           $.post(url ,data, function(result){

            alert(result);

            });        

           return false;

          });
于 2013-03-14T09:47:00.523 回答