select2:ajax和自定义坐标[lon,lat]标签

时间:2014-09-11 22:57:40

标签: javascript jquery-select2

我正在使用select2构建地理搜索框。

用户应该能够输入城市,国家或小数坐标[lon,lat]。 通过ajax调用

在服务器上查询城市/国家/地区

输入" ["是否可以阻止ajax调用?只有当lon,lat匹配下面的正则表达式时才会检测并创建搜索选项?

^[-+]?(180(\.0{1,15})?|((1[0-7]\d)|([1-9]?\d))(\.\d{1,15})?),[-+]?([1-8]?\d(\.\d{1,15})?|90(\.0{1,15})?)$

如果用户试图用"]"关闭[lon,lat]标签如果没有匹配正则表达式,它应该显示自定义消息

我当前没有坐标标记的代码是:

    $('.select2-search').select2({
        placeholder: 'Country, city or [lon,lat]',
        multiple: true,
        minimumInputLength: 2,
        maximumSelectionSize: 4,
        ajax: {
            url: "/citiesCountries",
            dataType: 'json',
            quietMillis: 100,
            data: function(term) {
                return {
                    search: term
                };
            },
            results: function(data) {
                return { results: data}
            }
       }
    });

提前致谢

1 个答案:

答案 0 :(得分:0)

您应该使用传输,例如:

$('.select2-search').select2({
    placeholder: 'Country, city or [lon,lat]',
    multiple: true,
    minimumInputLength: 2,
    maximumSelectionSize: 4,
    ajax: {
        url: "/citiesCountries",
        dataType: 'json',
        quietMillis: 100,
        data: function(term) {
            return {
                search: term
            };
        },
        results: function(data) {
            return { results: data}
        },
        transport: function(params){
            params.beforeSend = function(request){
                alert('your regex condition here');
            };
            return $.ajax(params);
        }
   }
});