繁体   English   中英

jQuery AJAX内容执行多次

[英]JQuery AJAX contents executing multiple times

我有一个网页,该网页使用GIS服务器中的Web服务搜索地址。 我只需单击一个按钮,就可以通过JQuery AJAX方法调用此Web服务。 AJAX success函数中,我将地址值映射到页面上的控件。 在此之前,我先检查用户角色。

检查本身并不重要。 如果检查失败,我会alert()用户。 我遇到的问题是,每当检查失败时,都会将alert()重复6次。 调试时,似乎AJAX调用不会重复多次。


function SelectAddress() {
    var url = $.url.build({
        protocol: 'https',
        host: 'maps.site.co.za',
        path: '/arcgis/rest/services/Search_Layers/SL_ADD/MapServer/find',
        params: {
            'searchText': SelectedAddressIsisKey,
            'Contains': 'True',
            'searchFields': 'ISIS Key',
            'Layers': 0,
            'returnCountOnly': 'false',
            'returnZ': 'false',
            'returnM': 'false',
            'f': 'pjson'
        }
    });

    $.ajax({
        url: url,
        type: 'GET',
        cache: false,
        dataType: 'jsonp',
        success: function (data) {
            // call autocomplete callback method with results                                
            $.map(data.results[0].value, function (item) {

                var _role = document.getElementById('txtRole').value;

                var _addressNo = data.results[0].attributes['Addr No'];
                var _suffix = data.results[0].attributes['Address No Suffix'];
                var _streetName = data.results[0].attributes['Street Name'];
                var _streetType = data.results[0].attributes['Street Name Type'];
                var _suburb = data.results[0].attributes['Official Suburb Name'];
                var _ward = data.results[0].attributes['Ward Name'];
                var _subCouncil = data.results[0].attributes['Subcouncil Name'];
                var _erfNo = data.results[0].attributes['Property Number'];
                var _isisKey = data.results[0].attributes['ISIS Key'];

                var _subCouncilNo = _subCouncil.substr(_subCouncil.length - 2, 2);

                //Check Subcouncil of logged in user
                if (_role == "Admin" || _role.substr(_role.length - 2, 2) == _subCouncilNo) {
                    document.getElementById('<%=TextBoxAddressNumber.ClientID%>').value = _addressNo;
                    document.getElementById('<%=ddlAddressSuffix.ClientID%>').value = _addressNo;
                    document.getElementById('<%=TextBoxRoad.ClientID%>').value = _streetName + " " + _streetType;
                    document.getElementById('<%=TextBoxSuburb.ClientID%>').value = _suburb;
                    document.getElementById('<%=ddlWard.ClientID%>').value = _ward;
                    document.getElementById('<%=ddlSubCouncil.ClientID%>').selectedIndex = _subCouncilNo;
                    document.getElementById('<%=txtErf.ClientID%>').value = _erfNo;
                    document.getElementById('<%=lblLISKey.ClientID%>').value = _isisKey;

                    jQuery('#Search-modal').dialog('close');

                    //return;
                }
                else {
                    alert("Error: This address is in Sub-Council " + _subCouncilNo);
                    //jQuery('#Search-modal').dialog('close');
                }

                //return;
            });
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert('error - ' + textStatus + errorThrown + XMLHttpRequest);
            //console.log('error', textStatus, errorThrown);
        }
    });
}

我懂了。

jQuery.map()

说明:将数组或对象中的所有项目转换为新的项目数组。

所以,我需要做的是:

$.map(data.results[0].value[0], function (item) { ... }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM