2012-11-28 12 views
13

Ich versuche Autocomplete und Onchange-Ereignis auf einmal zu tun.Fire Onchange-Ereignis nach AutoComplete

Bedeutet: Ich möchte Onchange-Ereignis in einem Autocomplete-Textfeld auslösen. Wenn ich etwas in die Textbox von der Tastatur schreibe und außerhalb des Textfelds klicke, dann ändere ich die Ereignisauslösung, aber wenn ich etwas aus dem Auto auswähle, schlägt der Name des Onchange-Ereignisses nicht vor.

Mein HTML-Code

<div style="width: 34%"> 
    Person Name:<input id="txt0" type="text" onchange="SaveData('txt0')" class="userSearch" placeholder="Helped Person" /> 
</div> 

JavaScript-Code

function AutoComplete() { 
//Autocomplete added to the textbox. 
$('.userSearch').autocomplete({ 
    source: function (request, response) { 
     $.ajax({ 
      url: "CTC.aspx/GetMemberName", 
      data: "{ 'prefixText': '" + request.term + "' }", 
      dataType: "json", 
      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      success: function (data) { 
       response(data.d) 
      }, 
      error: function (XMLHttpRequest, textStatus, errorThrown) { 
       alert('Error occured while autocomplete'); 
      } 
     }); 
    }, 
    minLength: 1 
}); 
} 

function SaveData(textBoxId) { 
    alert(textBoxId); 
} 

Ich möchte das onchange-Ereignis ausgelöst, nachdem sie von der automatischen Vervollständigung ausgewählt.

Bitte Hilfe

Vielen Dank im Voraus.

Antwort

11

diese Weise können Sie das Änderungsereignis-Widget auf dem die automatische Vervollständigung auslösen zu erreichen. http://api.jqueryui.com/autocomplete/#event-change

Zum Beispiel:

function AutoComplete() { 
    //Autocomplete added to the textbox. 
    $('.userSearch').autocomplete({ 
     source: function (request, response) { 
     // your ajax code 
     }, 
     minLength: 1, 
     change: function (event, ui) { SaveData(); } 
    }); 
} 
+0

Ich möchte so tun, dass nach Auswahl wird es onchange Ereignis feuern. –

+1

In diesem Fall können Sie das select-Ereignis verwenden: http://api.jqueryui.com/autocomplete/#event-select. – kdrvn

+0

Die Antwort half mir danke –

2
$('.userSearch').trigger('change'); 

Das „change“ -Ereignis

+0

automatisch Geige überprüfen wird es nicht ändern Ereignis gehen ?? –

+0

Setzen Sie den Code auf Ihre "Erfolg" und "Fehler" Teil – goFrendiAsgard

+0

Beide die Antwort half mir Danke –

0

KDRVN ist richtig.

$(".selector").autocomplete({ 
    select: function(event, ui) {} 
}); 

wie in

$("#models").autocomplete({source: models, select: function(event, ui) {alert('flippy');} }); 

Nicht diese Aktionen aus:

$('#models').on('select', function() { alert('waawoo'); }); 
    $('#models').on('change', function() { alert('feefaa'); }); 
onchange="updateModels(this)" 
2
$('#1').autocomplete({ 
    select: function(event, ui) { 
     "use strict"; 
     alert('select event called'); 
     }, 
    source: ["ActionScript", "AppleScript", "Asp", "BASIC", "C", "C++", "Clojure", "COBOL", "ColdFusion", "Erlang", "Fortran", "Groovy", "Haskell", "Java", "JavaScript", "Lisp", "Perl", "PHP", "Python", "Ruby", "Scala", "Scheme"], 

    minLength: 1, 
    change: function(event, ui) { 
     if (ui.item) { 
      alert("ui.item.value: " + ui.item.value); 
     } else { 
      alert("ui.item.value is null"); 
     } 
     console.log("this.value: " + this.value); 
    } 
}); 

können Dies wird sowohl wählen ausführen und für die automatische Vervollständigung Ereignis ändern.

Sie können auch http://jsfiddle.net/74wLyd8v/