Was wäre ein Grund, dass $ hidden.val() in der letzten Zeile oben undefined zurückgeben würde? Ich habe überprüft, dass selected.data [1] einen ganzzahligen Wert enthält.Benötigen Sie Hilfe, um jQuery zu verstehen .val() Funktion
Edit # 1: Einige zusätzliche Kontext pro Kommentare: (hidden $ ist ein verstecktes Eingabefeld)
$.fn.extend({
autocomplete: function(urlOrData, hidden, options) {
var isUrl = typeof urlOrData == "string";
var $hidden = $(hidden);
options = $.extend({}, $.Autocompleter.defaults, {
url: isUrl ? urlOrData : null,
data: isUrl ? null : urlOrData,
delay: isUrl ? $.Autocompleter.defaults.delay : 10,
max: options && !options.scroll ? 10 : 150
}, options);
// if highlight is set to false, replace it with a do-nothing function
options.highlight = options.highlight || function(value) { return value; };
// if the formatMatch option is not specified, then use formatItem for backwards compatibility
options.formatMatch = options.formatMatch || options.formatItem;
return this.each(function() {
new $.Autocompleter(this, options, $hidden);
});
und ...
$.Autocompleter = function(input, options, $hidden) {
//...
function selectCurrent() {
var selected = select.selected();
if (!selected)
return false;
var v = selected.result;
previousValue = v;
if (options.multiple) {
var words = trimWords($input.val());
if (words.length > 1) {
v = words.slice(0, words.length - 1).join(options.multipleSeparator) + options.multipleSeparator + v;
}
v += options.multipleSeparator;
}
alert("data going into $hidden: " + selected.data[1]);
$hidden.val(selected.data[1]);
alert("data now in $hidden: " + $hidden.val());
Edit # 2: Mehr Details .... Ich versuche, die jQuery-Autovervollständigung-Erweiterung in einem Formular mit mehreren Textbox-Steuerelementen zu verwenden (jede implementiert die automatische Vervollständigung). Es gibt eine separate Schaltfläche im Formular neben jedem Textfeld, die das Formular an eine Handler-Funktion übermittelt, die den Wert des ausgewählten Elements finden und in der Datenbank speichern muss. Die Art, wie ich darüber nachdachte, bestand darin, ein verstecktes Feld in das Formular einzufügen, um den ausgewählten Wert zu speichern.
Wo setzen Sie $ versteckt? –
Wir müssten wissen, auf was $ hidden genau bezogen ist, um diese Frage beantworten zu können. –
@matt b: Ich glaube, du hast das sehr "$" herausgeschnitten, nach dem du gefragt hast. War das absichtlich oder zufällig? – Tomalak