W skrypcie tokenInput zdarzenie onReady wyrzuca wyjątek

0

Używam skryptu TokenInput(http://loopj.com/jquery-tokeninput/). Podczas gdy onAdd i onDelete dzialaja wlasciwie, onReady nie. Konsola Chrome'a krzyczy "Uncaught TypeError: Cannot read property 'getTokens' of undefined.". Musze zapisywac nie tylko wpisane przez uzytkownika tokeny, ale takze te uzyte w PrePopulate. W czym tkwi problem?

    onAdd: function (item) {
projectresults=$("#inputproject").tokenInput("get");
console.log($(projectresults).serializeArray()); },

    onReady: function (item) {
projectresults=$("#inputproject").tokenInput("get");
console.log($(projectresults).serializeArray()); },

    onDelete: function (item) {
projectresults=$("#inputproject").tokenInput("get");
console.log($(projectresults).serializeArray());
}
0

brzmi jak wadliwy skrypt (w sensie TokenInput), bo w Twoim kodzie nic nie wskazuje na błąd.
nie podałeś GDZIE (w której linijce i pliku) jest błąd, ale jeżeli jest to w pliku ze skryptem TokenInput to znaczy, że zrobiłeś coś, czego autorzy nie przewidzieli.

spróbuj to zamienić na jakiś inny skrypt tego typu (np. Select2)

0

Tak, jest to plik ze skryptem, dokładnie 118 wiersz, fragment:

get: function() {
    	return this.data("tokenInputObject").getTokens();

P.S. Przepraszam za nieprecyzyjną nazwę tematu i dzięki za zmianę :)

0

A więc skrypt wadliwy - albo zapodałeś mu złe dane, a on tego nie przewidział. Błąd możesz naprawić, mniej więcej tak:

get: function() {
        var data = this.data("tokenInputObject");
        return (typeof data==="undefined") ? null : data.getTokens();

Zamiast nulla możesz chcieć zwrócić pustą tablicę [], ciężko powiedzieć po tym fragmencie jak jest sensowniej dla tego skryptu ;)

Edit:
Naprawa wyrzucania błędu niekoniecznie spowoduje, że skrypt zacznie działać tak jak oczekujesz!

1 użytkowników online, w tym zalogowanych: 0, gości: 1