2010-05-25 20 views
5

Merhaba Basit bir sorum var. Aşağıda bu kodu kullanıyorum, ajax'ı üç farklı şekilde çok farklı şekillerde kullanıyorum. Değişen tek şey veriyi geçiyor ve hedefin kimliği. Bu talimatları basit bir şekilde gruplamanın bir yolu var mı? Thx D.JQuery'de kurallar nasıl gruplanır

$('#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');} 
          }); 
        } 
        ); 

cevap

4

deneyin:

$('#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');} 
    }); 
} 
+0

Teşekkürler! Bu çözüm mükemmeldir. – Daniele

1

bir nesneyi ve kontrol için yapıyı kullanın:

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'); 
    } 
    }); 
} 
+0

Bu çözüm işe yaramazsa ... Bilmiyorum niye ya. – Daniele

+0

Benim için iyi çalışıyor. Ne oluyor? bir hata alıyor musun? – Tgr