Я пытаюсь реализовать динамическую форму в приложении Rails через AJAX и сделал несколько учебных пособий, но безуспешно.
Часть Javascript из файла js моего приложения в папке ресурсов
var land = document.getElementById("cart_land_id");
land.addEventListener("change", function(){
Rails.ajax({
url: "/carts?land=" + land.value,
type: "GET"
})
})
Для этой формы в представлении:
<%= form_for @cart, :url => {:action => "show_shipping"}, :html => {:method => "get"} do |f| %>
<%= f.select :land_id, options_for_select(@lands.map { |l| [l.name.titleize, l.id] }, {:id => 'lands_select', :prompt => "select a country"}) %><br>
<%= f.select :shippingservice_id, options_for_select([]) %><br>
<%= f.submit "Calculate shipping" %>
<% end %>
, который отображается как:
<form accept-charset="UTF-8" action="/carts/show_shipping/4" class="edit_cart" id="edit_cart_4" method="get">
<div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div>
<select id="cart_land_id" name="cart[land_id]"><option value="1">Afghanistan</option>
...
<select id="cart_shippingservice_id" name="cart[shippingservice_id]"></select><br>
<input name="commit" type="submit" value="Calculate shipping" />
</form>
производит
TypeError: null is not an object (evaluating 'land.addEventListener')
У меня есть jQuery вмой каталог Javascript.
Почему это происходит и как я могу это решить?