我试图在Javascript中使用地理位置获取一些坐标,但由于某种原因我返回一个假值,表单仍然提交。正如您将在代码中看到的,如果某些验证失败,函数saveData()
将返回false,如果所有验证都通过,则返回true。我正在检查check
变量的值,即使它是假的,它仍然会提交表单。
$("#save").click(function(){
var check = true;
navigator.geolocation.getCurrentPosition(function(position){
$('#lat-location-end').attr('value', position.coords.latitude);
$('#lon-location-end').attr('value',position.coords.longitude);
check = saveData();
return check;
}, function(){
$('#lat-location-end').attr('value', '0.00000000');
$('#lon-location-end').attr('value', '0.00000000');
check = saveData();
return check;
});
return check;
});
function saveData(){
var odleave = $('#odometer-leave').val();
var odarrival = $('#odometer-arrival').val();
var miles = $('#mil').data('mile');
if (odarrival < odleave){
alert("Odometer: Arrival must not be less than Odometer: Leave");
return false;
}
if (odleave != miles){
if (odleave > miles){
var mile_diff = odleave - miles;
if (mile_diff > 25){
if (!confirm("Your leaving mileage exceeds by " + mile_diff + " miles from your last mileage. Do you want to continue?"))
return false;
}
} else {
if(!confirm("Mileage entered is less than your last mileage. Are you using a new car?"))
return false;
}
}