更新我正在尝试通过地理编码的后端(.cs)的aspx文件的纬度和经度,当推送到数据库。然而,当我尝试在地理编码函数中使用console.log时,没有分配任何HiddenFields,这给我带来了未定义。
我尝试了很多解决方案,但都没有奏效,或者问题半途而废,没有任何解决方案。我尝试过使用:
使用hiddenField的.Value/.Value.toString()
不幸的是,这些都不起作用。
地理编码函数
var hiddenlat = $("#<%= hiddenlat.ClientID %>");
var hiddenlng = $("#<%= hiddenlng.ClientID %>");
function getLatLng() {
...
geocoder.geocode({ 'address': "'" + address + "'" }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
console.log("postal code in post.aspx is ", <%= postalcode
%>);
var latitude = results[0].geometry.location.lat();
var longitude = results[0].geometry.location.lng();
hiddenlat.val(latitude);
hiddenlng.val(longitude);
console.log(hiddenlat.val()); // undefined
console.log(hiddenlng.val()); // undefined
var data = { "lat": latitude, "lng": longitude };
} else {
console.log('request fail');
}
});
return true;
}这是隐藏字段
<asp:HiddenField ID="hiddenlat" runat="server" />
<asp:HiddenField ID="hiddenlng" runat="server" />用于发布的按钮
<asp:Button ID="btnSubmit" runat="server" CssClass ="btn btn-
success" Text="List" OnClientClick="getLatLng()"
OnClick="btnSubmit_Click"/>后端代码
protected void btnSubmit_Click(object sender, EventArgs e)
{
int lat = Convert.ToInt32(hiddenlat.Value);
int lng = Convert.ToInt32(hiddenlng.Value);
........
//Pushing of data into database
uploadDao.listitem(user, date, item, rtype, ptype, paper, metal,
batt, elec, weight, desc, add, images[0], images[1], images[2],
images[3], unitno, postalcode, qty, district, Convert.ToInt32(lat),
Convert.ToInt32(lng));
Response.Redirect("SellerListing.aspx?user=" + user);
}更新当我在地理编码函数中设置Hiddenfield的值时,HiddenFields中的值是未定义的。我可以知道为什么它是未定义的吗?我尝试了Console.log纬度和经度,它们都返回值。
发布于 2019-04-03 16:32:15
首先,您需要测试geocode函数。要测试geocode是否返回latitude和longitude,您需要登录控制台,如下所示。
function getLatLng(){
//... your code.
var latitude = results[0].geometry.location.lat();
var longitude = results[0].geometry.location.lng();
console.log("Latitude:" + latitude + ' and Longtitude:' + longtitude );
//Return false in getLatLng()
return false;
}发布于 2019-04-03 16:51:12
HTML
<input type="text" id="txtAddress" />
<input type="button" value="Get Lat/Long" id="btnGetLatLong"/>
<asp:Button Text="Save" runat="server" ID="btnSaveOnSever" OnClick="btnSaveOnSever_Click" />
<asp:HiddenField runat="server" ID="hdnLat" ClientIDMod="static"/>
<asp:HiddenField runat="server" ID="hdnLong" ClientIDMod="static" />Javascript
$('#btnGetLatLong').click(function() {
var geocoder = new google.maps.Geocoder();
var address = $('#txtAddress').val();
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var latitude = results[0].geometry.location.lat();
var longitude = results[0].geometry.location.lng();
$('#hdnLat').val(latitude);
$('#hdnLong').val(longitude);
alert("Success");
} else {
alert("faild");
}
});
});服务器端
protected void btnSaveOnSever_Click(object sender, EventArgs e)
{
decimal lat = Convert.ToDecimal(hdnLat.Value);
decimal lng = Convert.ToDecimal(hdnLong.Value);
........
//Pushing of data into database
uploadDao.listitem(user, date, item, rtype, ptype, paper, metal,
batt, elec, weight, desc, add, images[0], images[1], images[2],
images[3], unitno, postalcode, qty, district, lat,
lng);
Response.Redirect("SellerListing.aspx?user=" + user);
}https://stackoverflow.com/questions/55476847
复制相似问题