使用getCurrentPosition并返回false但仍然提交表单

时间:2017-08-09 14:20:13

标签: javascript jquery

我试图在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;
        }
    }

0 个答案:

没有答案
相关问题