2010-12-29 20 views
1

Wie man Ajax Anruf von onchange Ereignis der Auswahlbox mit jquery machen? Wenn jemand eine Probe hat, bitte den Code posten.jquery ajax Anruf von der Auswahl Box

+3

Ein bisschen mehr Mühe beim Erstellen der Frage würde auch nicht schaden. Und niemand wurde dumm, seine eigenen Informationen zu googeln. –

Antwort

10
$("#selectboxid").change(function() { 
    $.ajax({ url: "test.html", context: document.body, success: function(){ 
    $(this).addClass("done"); 
    }}); 
}); 
12

der folgende Code auf Spring MVC-Architektur basiert,

$('#selectbox1').change(function() { 
    var data = ""; 
    $.ajax({ 
     type:"GET", 
     url : "controller mapping", 
     data : "selectbox1_selectedvalue="+$(this).val(), 
     async: false, 
     success : function(response) { 
      data = response; 
      return response; 
     }, 
     error: function() { 
      alert('Error occured'); 
     } 
    }); 
    var string = data.message.split(","); 
    var array = string.filter(function(e){return e;}); 
    var select = $('selectbox2'); 
    select.empty(); 
    $.each(array, function(index, value) {   
     select.append(
       $('<option></option>').val(value).html(value) 
      ); 
    }); 
     $('#selectbox2').show(); 
}); 

innerhalb der HTML verwenden i wie unten die selectbox2 Werte anzuzeigen,

<tr> 
    <select id="selectbox1"> 
     <option value="value1">value1</option><option value="value2">value2</option> 
    </select> 
    <select id="selectbox2"></select> 
</tr> 

im selectbox2, Werte werden von einem Controller geladen, der einen Ajax-Aufruf verwendet, in Controller i wie folgt zurück,

List<String> listvalues = listService.retrieveAll(searchTerm); // searchTerm is a selected value from selectbox1 
String dummy = ""; 
for(int i=0; i<listvalues.size(); i++) 
{ 
    dummy += listvalues.get(i)+","; 
} 
MessageValue messageValue = new MessageValue(dummy); 
return messageValue; 
+0

+1 vollständiges Beispiel –