不显眼的JavaScript不能在Rails 3应用程序中工作

Unobtrusive JavaScript not working in Rails 3 app

本文关键字:应用程序 工作 Rails JavaScript 不能 不显眼      更新时间:2023-09-26

尝试添加mixpanel的代码到我的网站。但是,当我为表单执行onsubmit时,我无法让rails 3应用程序中的javascript跟踪事件。代码确实从chrome的控制台窗口工作。有什么建议吗?下面是我的html代码。erb文件。它与mixpanel提供的javascript一起放在文件的头部。

    <% javascript_tag do %>
      var my_term = <%= strip_tags(@term.to_json) %>
<% end %>

这是我在表单中跟踪提交的代码

<%= form_tag("/search", :method => "get", :onsubmit => 'mpq.track("search",{"term":my_term});', :style => "float:right;margin-top:9px;") do %>

感谢js生成

<script type="text/javascript">
//<![CDATA[
      var my_term = "san francisco"
//]]>
</script>
生成html

<form accept-charset="UTF-8" action="/search" method="get" onsubmit="mpq.track(&quot;search&quot;,{&quot;term&quot;:my_term});" style="float:right;margin-top:9px;">

你的代码有两个问题:

1 -查看生成的HTML中的onsubmit:

onsubmit="mpq.track(&quot;search&quot;,{&quot;term&quot;:my_term});" 

当你应该使用实际的"时,你正在使用&quot;

2 -在某些情况下,即使在修复了&;问题,事件将不会触发。这是因为在Mixpanel调用有机会解析之前,页面会发生变化。最好在搜索页面本身调用mpq.track(),而不是使用onsubmit javascript事件。