1

我目前正在使用 jEditable 插件来编写可更新的文本。我的服务器端是使用 Struts2 开发的,我调用的服务器 url 是返回 JSON 结果的 struts 操作。我使用以下代码将 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而不是自动增长,结果是一样的。

4

1 回答 1

0

好的,所以我不完全确定我是否正确,但我一直在尝试自己解决这个问题。我发现如果您的某种代码“略微”关闭,那么它将导致页面重新路由。我已经让 autogrow 工作了,我相信这应该对你有用:

        $.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
            }
        });
于 2013-05-14T22:37:37.780 回答