JavaScript - 重新启动提交事件适用于Chrome,但不适用于Firefox

时间:2015-11-15 13:36:11

标签: javascript jquery firefox devexpress

我有一个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);
    });

0 个答案:

没有答案