Как исправить ошибку в плагине TagIt?

Вот этот плагин используется и здесь, на Тостере, но проблемы с русской буквой "б" нет.
Пояснение
В английском языке запятая находится там, где у нас находится буква "б". Так как этот скрипт является плагином под jQuery UI, то коды клавиш (а не сами символы) прибиты к потолку жидкими гвоздями и ничего ты не докажешь тому jqui.

Я наткнулся на вот этот вопрос, где явно сказано, что применяется keypress, через который нельзя узнать, что там за символ, только код клавиши. Но всё же на Тостере это как-то работает.

Оффтоп (злодейство)
Да, я скачивал код с тостера, наглым образом автоформатировал его и пытался разобраться, но ничего путного у меня не вышло, так как на Тостере почему-то (такое ощущение), что плагин переписан примерно полностью через свои же события.
  • Вопрос задан
  • 2944 просмотра
Пригласить эксперта
Ответы на вопрос 3
@xfakehopex
попробуй удалить вот эту строчку) мне помогло
c.which===b.ui.keyCode.COMMA&&!1===c.shiftKey||
Ответ написан
Комментировать
@Kashmir2606
попробуй это
this.tagInput.keydown(function (c) {
            if (c.which == b.ui.keyCode.BACKSPACE && "" === a.tagInput.val()) {
                var d = a._lastTag();
                !a.options.removeConfirmation || d.hasClass("remove") ? a.removeTag(d) : a.options.removeConfirmation && d.addClass("remove ui-state-highlight")
            } else a.options.removeConfirmation && a._lastTag().removeClass("remove ui-state-highlight");
            if (c.which === b.ui.keyCode.COMMA && !1 === c.shiftKey || c.which === b.ui.keyCode.ENTER || c.which ==
                b.ui.keyCode.TAB && "" !== a.tagInput.val() || c.which == b.ui.keyCode.SPACE && !0 !== a.options.allowSpaces && ('"' != b.trim(a.tagInput.val()).replace(/^s*/, "").charAt(0) || '"' == b.trim(a.tagInput.val()).charAt(0) && '"' == b.trim(a.tagInput.val()).charAt(b.trim(a.tagInput.val()).length - 1) && 0 !== b.trim(a.tagInput.val()).length - 1))c.which === b.ui.keyCode.ENTER && "" === a.tagInput.val() || c.preventDefault(), a.options.autocomplete.autoFocus && a.tagInput.data("autocomplete-open") || (a.tagInput.autocomplete("close"), a.createTag(a._cleanedInput()))
        }).blur(function (b) {
            a.tagInput.data("autocomplete-open") ||
            a.createTag(a._cleanedInput())
        });

поменять на
this.tagInput.keypress(function (n) {
            if (n.which === 44 || n.which === 13 || n.which === 47 || n.which == 32 && a.options.allowSpaces !== !0 && (b.trim(a.tagInput.val()).replace(/^s*/, "").charAt(0) != '"' || b.trim(a.tagInput.val()).charAt(0) == '"' && b.trim(a.tagInput.val()).charAt(b.trim(a.tagInput.val()).length - 1) == '"' && b.trim(a.tagInput.val()).length - 1 !== 0))(n.which !== 13 || a.tagInput.val() !== "") && n.preventDefault(), a.createTag(a._cleanedInput())
        }).keydown(function (n) {
            if (n.which == b.ui.keyCode.BACKSPACE && a.tagInput.val() === "") {
                var r = a._lastTag();
                !a.options.removeConfirmation || r.hasClass("remove") ? a.removeTag(r) : a.options.removeConfirmation && r.addClass("remove ui-state-highlight")
            } else a.options.removeConfirmation && a._lastTag().removeClass("remove ui-state-highlight");
            n.which == b.ui.keyCode.TAB && a.tagInput.val() !== "" && (n.which !== b.ui.keyCode.ENTER || a.tagInput.val() !== "", a.tagInput.data("autocomplete-open") || a.createTag(a._cleanedInput()))
        }).blur(function (e) {
            a.tagInput.data("autocomplete-open") || a.createTag(a._cleanedInput())
        });

у меня работает
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
24 нояб. 2024, в 03:11
500 руб./за проект
24 нояб. 2024, в 01:35
5000 руб./за проект
24 нояб. 2024, в 01:24
500 руб./за проект