我被困在一個任務中,不知道如何繼續前進。任何意見將不勝感激! (我對Javascript和jQuery非常陌生)。在rails應用程序中訪問Javascript變量
我正在執行在創建或編輯建築物期間在Google地圖上標記建築物的能力(兩者都是相同的形式)。
因此,我在.html.haml文件中的表單有兩個字段可以選擇一個國家和一個城市。只要沒有選擇國家,城市地區就會被禁用。這兩個字段保存國家和城市的ID(不是名字!)。
= select_tag 'building[country_id]', options_for_select(Country.all.map{|c| [c.name, c.id]), onchange: "getLocationObjects ($(this).val(), '#{cities_path}')"
- if building.country
= select_tag 'building[city_id]', options_for_select(building.get_countries.cities.map{|c| [c.name, c.id]}, building.get_city.id), include_blank: "Choose city"
- else
= select_tag 'building[city_id]', options_for_select([["Choose country", '']]), disabled: true
但對於標記對谷歌地圖的建築物,我需要一個城市名稱,而不是ID(不說「然後將其保存在選擇標籤,而不是ID」,我需要在一個應用程序的其它部分的ID )。
所以我用一個jQuery保存城市的名稱:
:javascript
$(document).ready(function() {
$('#building_city_id').change(function() {
var option = $(this).find('option:selected').text();
return option;
});
});
這也正是第一個問題發生:當我編輯的建築已經有指定一個國家,一個jQuery函數保存城市名稱就好了。但是如果我從列表中選擇另一個國家,它就不再起作用了。
第二個問題:谷歌地圖的所有代碼位於.js文件中。那麼如何在這裏調用在.html.haml文件中創建的Javascript變量?
讓我清楚解釋一下,https://chat.stackoverflow.com/rooms/101297/adhoc – beck03076