我正在查找用戶輸入的地址的經度和緯度。我正在調用一個表單按鈕點擊的jQuery函數。但是控制器方法在這個jQuery函數之前執行。我想要的是,當用戶點擊提交按鈕時,在調用成功控制器函數之後調用jQuery函數。jQuery onclick函數未執行
查看:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"> </script>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function getCoordinates() {
$("#sumbitBtn").click(function(){
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': '#street' }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
alert("location : " + results[0].geometry.location.lat() + " " + results[0].geometry.location.lng());
$(selector).val(value)
var latitude = results[0].geometry.location.lat();
var longitude = results[0].geometry.location.lng();
$('latitude').val('latitude');
$('longitude').val('longitude');
$.ajax({
type: "POST",
dataType: 'json',
data: {
mylat: latitude,
mylang: longitude
},
url: "RentOutSpace/AddSpaces",
success: function (result) { success(result); }
});
} else {
alert("Something got wrong " + status);
}
});
});
}
@using (Html.BeginForm("AddSpace","RentOutSpace","$.post()"))
{
@Html.ValidationSummary(true, "Please correct the errors and try again")
@Html.EditorFor(model => model.latitude)
@Html.EditorFor(model => model.longitude)
<div class="editor-label">
@Html.LabelFor(model => model.street)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.street)
@Html.ValidationMessageFor(model => model.street)
</div>
<input type="submit" value="submit" onclick="getCoordinates()" id="sumbitBtn"/>
}
控制器:
[HttpPost]
public ActionResult AddSpace(RentOutSpace rentModel, string lati, string lang)
{
rentModel.latitude = lati;
rentModel.longitude = lang;
Session.Store(rentModel);
Session.SaveChanges();
return View();
}
我刪除了這些行但getCoordinates()函數未執行 – Wasfa
什麼是$(selector).val(val ue)''在'geocode()'部分? –
我將隱藏文本框的名稱設置爲經度和緯度的值,以獲得地理編碼的座標值,以便將其傳遞給控制器以將其保存在數據庫中。 – Wasfa