Autogrow на jEditable отправляет все вместо вызова AJAX

В настоящее время я работаю с плагином jEditable для создания обновляемого текста. Моя серверная часть разработана с использованием Struts2, и URL-адреса серверов, которые я вызываю, являются действиями Struts, которые возвращают результаты JSON. Я использую следующий код для загрузки jeditable в мое поле (которое является H1):

 $("h1.myclass").editable("/MyApp/dinamic/updateText.action", {
    indicator : "<center><img src='/MyApp/images/loading.gif'></center>",
    submit    : 'Save',
    cancel    : 'Cancel',
    tooltip   : "Click to edit",
    onblur    : "ignore",
    name      : "myField",
    callback : function(value, settings) {
            alert(JSON.stringify(value));
    }
});

Как вы можете видеть, в этом коде я не использую type : autogrow функциональности пока нет, и пока работает нормально. Проблема в том, что когда я добавляю type : autogrow, соответствующий текст отображается, но когда я нажимаю кнопку сохранения, браузер перенаправляется на URL-адрес, как

http://localhost:8080/MyApp/myform.action?myfield=YadaYada

где YadaYada фактический текст, который я пытался сохранить и myform.action это страница, на которой я уже был.

Кто-нибудь знает, почему эта ошибка происходит? \

OBS: Я также попытался использовать growfield2 вместо автоматического увеличения, и результат тот же.

1 ответ

Итак, я не совсем уверен, прав ли я, но я пытался решить эту проблему самостоятельно. Я обнаружил, что если какой-то ваш код "слегка" отключен, это приведет к перенаправлению страницы. Я получил автостраду, чтобы работать, и я считаю, что это должно работать для вас:

        $.editable.addInputType('autogrow', {
            element: function (settings, original) {
                var textarea = $('<textarea />');
                if (settings.rows) {
                    textarea.attr('rows', settings.rows);
                } else {
                    textarea.height(settings.height);
                }
                if (settings.cols) {
                    textarea.attr('cols', settings.cols);
                } else {
                    textarea.width(settings.width);
                }
                $(this).append(textarea);
                return (textarea);
            },
            plugin: function (settings, original) {
                $('textarea', this).autogrow(settings.autogrow);
            }
        });

       $("h1.myclass").editable("/MyApp/dinamic/updateText.action", {
            type: "autogrow",
            indicator: "<center><img src='/MyApp/images/loading.gif'></center>",
            submit: 'Save',
            cancel: 'Cancel',
            tooltip: "Click to edit",
            onblur: "ignore",
            name: "myField",
            callback: function (value, settings) {
                alert(JSON.stringify(value));
            },
            autogrow: {
                lineHeight: 16,
                maxHeight: 512
            }
        });
Другие вопросы по тегам