Heim > Web-Frontend > js-Tutorial > JQuery Ajax HTML5 Datalist Autoperete Beispiel

JQuery Ajax HTML5 Datalist Autoperete Beispiel

Jennifer Aniston
Freigeben: 2025-02-23 10:52:13
Original
424 Leute haben es durchsucht

JQuery Ajax HTML5 Datalist Autoperete Beispiel

Dieser Code verwendet HTML5 -Datalist -Tag, um automatische Optionen für ein Textfeld einzustellen . Es greift die Daten aus einer JSON -Datei mit einer AJAC -Anforderung (Daten, die im Browser bei Bedarf oder lokal in einem JS -Objekt im Browser gespeichert werden können). Anschließend wird die Auswahl eines Vororts verwendet, um andere Felder Postleitzahl und festzustellen, wenn sich der Vorort ändert. Funktioniert wie ein Genuss in so ziemlich allen Browser außer Safari. Hinweise: Der HTML -Datalist ist immer noch nicht mit allen Browsern kompatibel. Siehe Kompatibilität. Für das Backfill -Plugin verwenden Sie dies: jQuery.relevantDropdowns.js - Es fügt ein UL -Tag mit Li für Optionen für die Ersetzung der Datalistenoptionen ein. JQuery Ajax HTML5 Datalist Autoperete Beispiel

html5 datalist tag

Nach dem Login kopieren

Voller jQuery

Dieser Code füllt den Datalisten über JSON und füllt automatisch andere Felder basierend auf der automatischen Auswahl des Feldes durch den Benutzer.
<span>window.DATALIST = {
</span>
    <span>cache: {},
</span>
    <span>init: function()
</span>    <span>{
</span>        <span>var _this = this,
</span>            <span>this.cache.$form = $('formid');
</span>            <span>this.cache.$suburbs = this.cache.$form.find('datalist#suburbs');
</span>            <span>this.cache.$suburbInput = this.cache.$form.find('input[name="suburb"]');
</span>            <span>this.cache.$postcodeInput = this.cache.$form.find('input[name="postcode"]');
</span>            <span>this.cache.$stateInput = this.cache.$form.find('input[name="state"]');
</span>
        <span>//grab the datalist options from JSON data
</span>        <span>var checkMembershipRequest = $.ajax({
</span>            <span>type: "GET",
</span>            <span>dataType: "JSON",
</span>            <span>url: "/php/suburbs.php"
</span>        <span>});
</span>
        checkMembershipRequest<span>.done(function(data)
</span>        <span>{
</span>            <span>console.log(data);
</span>
            <span>//data could be cached in the browser if required for speed.
</span>            <span>// localStorage.postcodeData = JSON.stringify(data);
</span>
            <span>//add options to datalist
</span>            $<span>.each(data.suburbs, function(i<span>,v</span>)
</span>            <span>{
</span>                _this<span>.cache.$suburbs.append(''+i+'');
</span>            <span>});
</span>
            <span>//hook up data handler when suburb is changed to autocomplete postcode and state
</span>            _this<span>.cache.$suburbInput.on('change', function()
</span>            <span>{
</span>                <span>// console.log('suburb changed');
</span>                <span>var val = $(this).val(),
</span>                    selected <span>= _this.cache.$suburbs.find('option[data-value="'+val+'"]'),
</span>                    postcode <span>= selected.data('postcode'),
</span>                    state <span>= selected.data('state');
</span>                _this<span>.cache.$postcodeInput.val(postcode);
</span>                _this<span>.cache.$stateInput.val(state);
</span>            <span>});
</span>
        <span>});
</span>
        checkMembershipRequest<span>.fail(function(jqXHR<span>, textStatus</span>)
</span>        <span>{
</span>            <span>console.log( "postcode request fail - an error occurred: (" + textStatus + ")." );
</span>            <span>//try again...
</span>        <span>});
</span>
    <span>}
</span>
<span>}</span>
Nach dem Login kopieren

Full html

So könnte Ihr HTML aussehen:

*Suburb:





*Postcode:

State:


Nach dem Login kopieren

Voller JSON

Die PHP -Datei gibt JSON zurück - kann bei Bedarf .json oder .Php und greifen Sie Daten aus einer Datenbank.
<span>{
</span>    <span>"suburbs": {
</span>        <span>"suburb1": {
</span>            <span>"postcode": "2016",
</span>            <span>"state": "NSW"
</span>        <span>},
</span>        <span>"suburb2": {
</span>            <span>"postcode": "4016",
</span>            <span>"state": "QLD"
</span>        <span>},
</span>        <span>"suburb3": {
</span>            <span>"postcode": "3016",
</span>            <span>"state": "CA"
</span>        <span>},
</span>        <span>"suburb4": {
</span>            <span>"postcode": "8016",
</span>            <span>"state": "WA"
</span>        <span>},
</span>        <span>"suburb5": {
</span>            <span>"postcode": "6016",
</span>            <span>"state": "SA"
</span>        <span>}
</span>    <span>}
</span><span>}</span>
Nach dem Login kopieren

HTML5 Trigger Datalist

Verwenden Sie Alt Down Arrow, um die Benutzeraktion zu simulieren. Sie müssen JQuery verwenden, um einen mehrfachen Trigger -Schlüsselpress zu simulieren. KeyCode Alt = 18 (auch Modifikator -Schlüssel, der als Altkey bezeichnet wird) KeyCode Down Arrow = 40
<span>var e = jQuery.<span>Event</span>("keydown");
</span>e<span>.which = 40;
</span>e<span>.altKey = true;
</span><span>$("input").trigger(e);</span>
Nach dem Login kopieren

häufig gestellte Fragen (FAQs) zu JQuery Ajax und HTML5 Datalist AutoComplete

Wie kann ich Datalistenoptionen dynamisch mit AJAX in Firefox laden? Zunächst müssen Sie eine AJAX-Anforderung an Ihr serverseitiges Skript erstellen. Dieses Skript sollte die Daten zurückgeben, die Sie im Datalisten bevölkern möchten. Sobald die AJAX -Anforderung erfolgreich ist, können Sie die Antwortdaten verwenden, um den Datalisten zu füllen. Hier ist ein einfaches Beispiel:

$. Ajax ({
url: 'your-server-side-script',
Erfolg: Funktion (Daten) {
var datalist = $ (' #Your-Datalist-ID ');
Datalist.Empty (); datalist.append ('

Wie kann ich JQuery AutoComplete mit Callback Ajax JSON verwenden? Sie müssen das AutoComplete -Widget in Ihrem Eingabefeld initialisieren und eine Quelloption bereitstellen. Die Quelloption sollte eine Funktion sein, die eine AJAX -Anforderung erstellt und die Antwortdaten verwendet, um die automatischen Vorschläge zu füllen. Hier ist ein Beispiel:

$ ('#your-input-id'). AutoComplete ({
Quelle: Funktion (Anfrage, Antwort) {
$ .ajax ({
url: 'your-server-side-script',
Datentyp: 'JSON',
Daten: {
Term: Request.term
},
Erfolg: Funktion (Daten) {
Antwort (Daten);
}
});
}
}); Mit der ID Ihres Eingabebuchs und dem "Ihr Server-Seite-Skript" mit der URL Ihres serverseitigen Skripts. Autokaponete -Funktionalität? Zunächst müssen Sie ein Eingabefeld und einen Datalisten in Ihrem HTML erstellen. Anschließend müssen Sie JQuery AJAX verwenden, um die Daten zu holen, die Sie für die automatischen Vorschläge verwenden möchten. Sobald die AJAX -Anforderung erfolgreich ist, können Sie die Antwortdaten verwenden, um den Datalisten zu füllen. Hier ist ein Beispiel:


$. Ajax ({

url: 'Ihr -Server-Side-Script ',

Erfolg: Funktion (Daten) {
var datalist = $ ('##your-datalist-id ');
Datalist.Empty ();
$ .each (Daten, Funktion (Index, Wert) {
datalist.append ('

console.Error ('Ajax -Anforderung fehlgeschlagen:' textStatus);

Wie kann ich JQuery AJAX verwenden, um Daten an den Server zu senden? Die Option "Daten" sollte ein Objekt sein, bei dem die Eigenschaftsnamen die Datenschlüssel und die Eigenschaftswerte die Datenwerte sind. Die Daten werden an den Server im Körper der HTTP -Anforderung gesendet. Hier ist ein Beispiel:

$. Ajax ({
url: 'your-server-side-script',
Methode: 'post',
Daten: {
key1: 'value1',
key2: 'value2'
},
Erfolg: Funktion (Antwort) {
// Die erfolgreiche Antwort
verwandeln
}
});
Ersetzen Sie in diesem Code 'Your-Server-Side-Skript' durch die URL Ihres serverseitigen Skripts, 'Key1' und 'Key2' durch Ihre Datenschlüssel und 'Value1' ' und 'value2' mit Ihren Datenwerten.

Das obige ist der detaillierte Inhalt vonJQuery Ajax HTML5 Datalist Autoperete Beispiel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage