【问题标题】:JQuery Rails 3: Unable to get JS executed with simple formJQuery Rails 3:无法以简单的形式执行 JS
【发布时间】:2011-01-23 22:20:29
【问题描述】:

javascript 和 Rails 的新功能。 当我的 Rails 应用程序不是表单时,我已经获得了一些简单的 jQuery 来使用它。

现在我正在尝试在用户点击表单中的“提交”时执行 jQuery 操作。 我遇到的问题是执行 HTML 代码而不是脚本。 顺便说一句:使用脚手架创建一个简单的表单。这是我要获取的 CREATE 提交操作。


application.js:

jQuery.ajaxSetup({
  'beforeSend': function(xhr) {
    xhr.setRequestHeader("Accept", "text/javascript")
  }
})

$(document).ready(function() {

  $("#new_travel").submit(function() {
    $.post(this.action, $(this).serialize(), null, "script");
    return false;
  });

create.js.erb:

alert('Yeah!');  // Have more, but just want to see the jQuery to be executed

new.html.erb:

<%= form_for(@travel, :remote => true) do |f| %>
..
..
  <div class="actions">
    <%= f.submit %>

travels 控制器将 format.js 保存在 respond_to 块中

关于什么是错的任何线索? 如果缺少任何信息,请告诉我。

谢谢!

【问题讨论】:

  • $("#new_travel").submit(function() { $.post(this.action, $(this).serialize(), null, "script"); return false; }); :这是:this.action 一个有效的 jq/js 语句..?
  • 是的,但是我的帖子的格式可能会更好。 :)。

标签: javascript jquery ajax ruby-on-rails-3 form-submit


【解决方案1】:

解决了!

我发现它确实适用于标准表单,但由于我操作的表单作为另一个 Jquery 调用的一部分显示在另一个页面中,$("#new_travel") 没有检测到它。

我不得不将其更改为: $("#new_travel").live('提交'函数()...

然后,页面上的所有关注#new_travel 都获得了 javascript 'hook'。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-16
    • 2015-11-04
    • 1970-01-01
    • 2020-12-13
    相关资源
    最近更新 更多