我正嘗試設置的隱藏字段值中的Rails 3無法在形式隱藏字段設置值
形式但是當我提交表單到我的數據庫,這些theres沒什麼寫領域。
還有就是我的JS:當我打開getGeocode()的返回值假
的隱藏字段的值置位。但是,當我將returnvalue設置爲true時,不會進入數據庫。
字段在模型中設置和工作,並且該函數可以通過form_for helper的onsubmit方法訪問。
有人知道如何解決這個問題嗎?
我正嘗試設置的隱藏字段值中的Rails 3無法在形式隱藏字段設置值
形式但是當我提交表單到我的數據庫,這些theres沒什麼寫領域。
還有就是我的JS:當我打開getGeocode()的返回值假
的隱藏字段的值置位。但是,當我將returnvalue設置爲true時,不會進入數據庫。
字段在模型中設置和工作,並且該函數可以通過form_for helper的onsubmit方法訪問。
有人知道如何解決這個問題嗎?
要防止的方法,從提交我加入ev.preventDefault()與$設定值後恢復的方法(「# new_player「)。unbind('submit')。submit()
$("#new_player").submit(function(ev) {
ev.preventDefault();
geocoder = new google.maps.Geocoder();
var street = $("#player_street").val()
var postalcode = $("#player_postalcode").val()
var city = $("#player_city").val()
var address = street + ", " + postalcode + ", " + city
var lat
var lng
geocoder.geocode({ 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
lat = results[0].geometry.location.hb
lng = results[0].geometry.location.ib
$("#player_lat:hidden").val(lat)
$("#player_lng:hidden").val(lng)
$("#new_player").unbind('submit').submit()
} else {
alert("Dein Player konnte nicht eingetragen werden, bitte probiere es noch einmal.")
return false
}
})
})
由於您使用的jQuery使用:hidden
jQuery選擇器。
var street = $("#player_street:hidden").val()
geocoder.geocode(...
是異步函數。所以它會在一段時間後收到響應併爲字段設置值,而getGeocode()
函數的其餘代碼仍在運行。
如果您在函數中返回true
,則在地理編碼器返回結果之前提交表單。如果返回false
,則提交被取消並設置值。
所以,你需要在回調提交數據,是這樣的:
$(#the_form_id).submit(function() {
geocoder = new google.maps.Geocoder();
var street = $("#player_street").val()
var postalcode = $("#player_postalcode").val()
var city = $("#player_city").val()
var address = street + ", " + postalcode + ", " + city
var lat
var lng
geocoder.geocode({ 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
lat = results[0].geometry.location.hb
lng = results[0].geometry.location.ib
$("#player_lat").val(lat)
$("#player_lng").val(lng)
$(#the_form_id).unbind('submit').submit();
} else {
return false
alert("Dein Player konnte nicht eingetragen werden, bitte probiere es noch einmal.");
}
});
return false;
})
這就是問題所在。地理編碼方法是異步的。我嘗試實現回調或其他東西。 – bernheart 2013-02-22 18:25:46