我有一个ASP.Net网站,我需要在任何回发中获取地理位置数据。
我想捕获提交事件并在获取地理位置数据后重新提升它,调用form1.submit();
不起作用,因为页面中的按钮是DevExpress按钮,它们实现了click事件并自行回发
我试图找到根调用者并将其调出如下,这在Chrome上运行良好但在Firefox上不起作用,Firefox再次调用根调用者,但是不会发生提交事件。
function beforeSubmit(e) {
var latField = document.getElementById('lat');
var lngField = document.getElementById('lng');
var clickFunction = getRootCaller();
if (latField.value == '' || lngField.value == '') {
GetGeolocation(function (latitude, longitude) {
latField.value = latitude;
lngField.value = longitude;
clickFunction();
},
function () {
latField.value = 'missing lat';
lngField.value = 'missing lng';
clickFunction();
})
return false;
}
else {
return true;
}
}
function getRootCaller() {
var thisFunction = arguments.callee;
var caller = thisFunction.caller;
while (caller.caller != null) {
caller = caller.caller;
}
return caller;
}
$(document).ready(function () {
var formClientID = '<%= Page.Form.ClientID %>';
$(document.getElementById(formClientID)).submit(beforeSubmit);
});