2016-06-08 137 views
0

我在铁轨上的一些JavaScript代码挣扎。我使用此代码动态地制作两个下拉菜单。我需要将代码“翻译”成js.coffee,但我不知道如何做到这一点。JavaScript入咖啡

这是我的javascript代码:

<script> 
$(document).ready(function() { 
     $('#categories_select').change(function() { 
      $.ajax({ 
      url: "<%= update_subcategories_path %>", 
      data: { 
       category_id : $('#categories_select').val() 
      }, 
      dataType: "script" 
      }); 
     }); 
     }); 
</script> 

我这一个尝试过,但它不工作:

$ -> 
    $(document).on 'change', '#categories_select', (evt) -> 
    $.ajax 'update_subcategories', 
     type: 'GET' 
     dataType: 'script' 
     data: { 
     country_id: $("#categories_select option:selected").val() 
     } 
     error: (jqXHR, textStatus, errorThrown) -> 
     console.log("AJAX Error: #{textStatus}") 
     success: (data, textStatus, jqXHR) -> 
     console.log("Dynamic category select OK!") 

这是我的表格:

<%= form_for(@search) do |f| %> 
<%= f.collection_select :category_id, @categories, :id, :name, {:prompt => "Select category"}, {:id => 'categories_select'} %> 
<%= f.collection_select :subcategory_id, @subcategories, :id, :name, {:prompt => "Select subcategory"}, {:id => 'subcategories_select'} %> 

与脚本它工作正常,但我想从我的HTML文件中获取此JavaScript。谁能帮我这个?

谢谢你的帮助!

+0

你在控制台有什么错误? – madalinivascu

+5

您可以使用[js2coffee](http://js2.coffee)等服务来转换现有的代码。我能看到的是,您在咖啡示例中的数据中使用“country_id”,而在javascript中使用“category_id”。 –

+0

谢谢你madalin!我可以在控制台中找到错误。 'update_subcategories'只是错误的路径* face palm *。 – Eckenmeyer

回答

0

对于它的价值,我认为它看起来好像您尝试将您的代码转换为CoffeeScript 同时进行更改。你应该先做第一个,检查它是否有效,然后是第二个。

这为我编译,并为您的上述相同的JavaScript。对你起作用吗?如果是这样,从那里继续:

$(document).ready -> 
    $('#categories_select').change -> 
     $.ajax 
     url: "<%= update_subcategories_path %>", 
     data: 
      category_id : $('#categories_select').val() 
     dataType: "script"