Как сгруппировать правила в jQuery

Привет у меня есть простой вопрос. У меня есть этот код ниже, я использую ajax три раза очень подобными способами единственные вещи, что изменение является переданными данными и идентификатор цели. Существует ли способ сгруппировать эти инструкции в простой? Спасибо D.

$('#fld_email').focusout(function() {
                    var request_email = $(this).val();              
                    $.ajax({type:"GET",
                            url: "autocomplete.asp",
                            data: "fld=firstname&email="+request_email,
                            beforeSend: function(){$('#fld_firstname').addClass('ac_loading');},
                            success: function(msg){$('#fld_firstname').val(msg);$('#fld_firstname').removeClass('ac_loading'); }
                          });   
                    $.ajax({type:"GET",
                            url: "autocomplete.asp",
                            data: "fld=lastname&email="+request_email,
                            beforeSend: function(){$('#fld_lastname').addClass('ac_loading');},
                            success: function(msg){$('#fld_lastname').val(msg);$('#fld_lastname').removeClass('ac_loading');}
                          });   
                    $.ajax({type:"GET",
                           url: "autocomplete.asp",
                           data: "fld=phone&email="+request_email,
                           beforeSend: function(){$('#fld_phone').addClass('ac_loading');},
                           success: function(msg){$('#fld_phone').val(msg);$('#fld_phone').removeClass('ac_loading');}
                          });   
                    }
                    );
5
задан Daniele 25 May 2010 в 08:29
поделиться

2 ответа

попытка:

$('#fld_email').focusout(function() {
    var request_email = $(this).val();
    processAjax("fld=firstname&email="+request_email, '#fld_firstname');
    processAjax("fld=lastname&email="+request_email, '#fld_lastname');
    processAjax("fld=phone&email="+request_email, '#fld_phone');
});

function processAjax(data, id){
    $.ajax({type:"GET",
           url: "autocomplete.asp",
           data: data,
           beforeSend: function(){$(id).addClass('ac_loading');},
           success: function(msg){$(id).val(msg).removeClass('ac_loading');}
    });   
}
4
ответ дан 14 December 2019 в 19:04
поделиться

Используйте объект и структуру управления for:

var fields = {firstname:1, lastname:1, phone:1};
for (field in fields) {
  $.ajax({
    type:"GET",
    url: "autocomplete.asp",
    data: "fld=" + field + "&email=" + request_email,
    beforeSend: function() {
      $('#fld_'+field).addClass('ac_loading');
    },
    success: function(msg) {
      $('#fld'+field).val(msg);
      $('#fld'+field).removeClass('ac_loading');
    }
  });
}
1
ответ дан 14 December 2019 в 19:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: