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
}
});