2016-08-05 48 views
1

Ich bin neu hier, und ich habe eine Frage:jQuery - die automatische Vervollständigung: Verwenden Sie den gleichen Code für mehrere Eingabefelder

HTML-Code:

<div class="col-lg-4"><input type="text" id="eenheid" class="form-control autocomplete-field" name="eenheid" autocomplete="off" placeholder="Eenheid..."></div><div class="col-lg-4"><input type="text" id="ingredient" class="form-control autocomplete-field" name="ingredient" autocomplete="off" placeholder="Ingredient..."> 

jQuery-Code

$(document).ready(function() { 
//autocomplete 
var autocomplete_field_id = $('.autocomplete-field').attr('id'); 

$(".autocomplete-field").on('input', function() { 
    autocomplete_field_id = this.id; 
}); 

$("#" + autocomplete_field_id).autocomplete({ 
    source: "autocomplete.php?field=" + autocomplete_field_id, 
    minLength: 2 
}); 
}); 

Ich versuche, den gleichen Code für mehrere Eingabefelder zu verwenden, wenn ein Eingabefeld den jQuery-Selektor aktiv ist Die Autocomplete-Funktion sollte vom aktiven Eingabefeld zur ID wechseln.

Mit dem Code, den ich derzeit verwende, bleibt der Selektor (id) immer gleich.

Vielen Dank im Voraus

Antwort

0

Wenn ich Ihnen klar zu verstehen, wollen Sie den Wert des Wählers autocomplete_field_id die ID des aktiven Eingabefeld zu sein.

Anstatt on('input') zu verwenden, sollten Sie on('focus') verwenden.

$(document).ready(function() { 
    //autocomplete 
    var autocomplete_field_id; 

    $(".autocomplete-field").on('focus', function() { 
     autocomplete_field_id = this.id; 
    }); 

    $("#" + autocomplete_field_id).autocomplete({ 
     source: "autocomplete.php?field=" + autocomplete_field_id, 
     minLength: 2 
    }); 
}); 

this helps:

Sie können den Code auf diese Weise schreiben.

0

Wenn Sie, was Sie wollen, ist die gleiche die automatische Vervollständigung jedem Eingang hinzuzufügen Sie die verwenden können jQuery .each -

//autocomplete 
$(".autocomplete-field").each(function(index, me) { 
    // me referrs to the current item with class "autocomplete-field" 
    $(me).autocomplete({ 
    source: "autocomplete.php?field=" + autocomplete_field_id, 
    minLength: 2 
    }); 
}); 

.each schaltet durch jedes Element, das die Wähler übereinstimmt und die bereitgestellte Funktion auszuführen (in In diesem Fall fügen Sie eine automatische Vervollständigung hinzu. Die Parameter repräsentieren -

  • Der Index des Elements innerhalb des ausgewählten Satzes ("Index")
  • Der Artikel selbst ("me")