TextExt jQuery плагин и скрытое значение поля

Я играл с http://textextjs.com/ эти выходные, так как он выглядит как очень солидный плагин автозаполнения с дополнительными функциями, которые могут пригодиться в будущем (например, тегирование). Я попытался реализовать это в одном месте, которое в настоящее время использует мою собственную функцию автозаполнения, однако есть одна критическая проблема для меня с этим плагином, для которого мне еще не удалось найти пример / решение.

Я использую следующую структуру данных:

[
    {
        "id": "1",
        "title": "Active",
        //etc....
    },
    {
        "id": "2",
        "title": "Inactive",
        //etc....
    },
    //etc...
]

Сейчас я использую плагин ajax/autocomplete (хотя в будущем мне понадобится эта функциональность для плагина тегов). У меня есть собственный ItemManager, который позволяет этим данным, эти данные работать нормально, но вот моя проблема. Я хочу иметь возможность установить ввод, который пользователи видят и взаимодействуют с объектом.title, однако я хочу, чтобы скрытый ввод, отправленный с формой, был object.id. Как получить этот тип функциональности при использовании плагина автозаполнения / тегов?

Я попытался взглянуть на onGetDataForm, так как кажется, что мне нужно было бы создать плагин, который реализует это (хотя мне кажется чрезмерным необходимость создавать плагин, чтобы иметь возможность установить скрытый ввод, отличный от видимый один), но даже если бы это было так, я не вижу, как я получил бы доступ к полному объекту данных элемента, выбранного в автозаполнении, чтобы иметь возможность установить два поля по-разному. Любая помощь в этом была бы отличной.

1 ответ

Я не думаю, что TextExt.js в настоящее время поддерживает это, но это должно быть довольно легко реализовать. Прежде чем я объясню, пожалуйста, зарегистрируйте проблему в GitHub, чтобы она в конечном итоге была устранена (если вы этого еще не сделали).

Посмотрите на эту функцию https://github.com/alexgorbatchev/jquery-textext/blob/master/src/js/textext.plugin.autocomplete.js#L671

p.onGetFormData = function(e, data, keyCode)
{
    var self       = this,
        val        = self.val(),
        inputValue = val,
        formValue  = val
        ;
    data[100] = self.formDataObject(inputValue, formValue);
};

Как видите, он возвращает значения из поля ввода напрямую. Что вы можете сделать здесь, это проверить в вашем массиве данных (self._suggestions) если то, что пользователь ввел, совпадает с чем-либо. Если это так, вы можете использовать элемент, который соответствует и вернуть id поле.

Это отвечает на ваш вопрос?

Другие вопросы по тегам