我一直在使用JEditable的jQuery插件,我想错误返回插件指示它恢复到先前的值,并显示错误给用户。 我有这个工作使用同步Ajax调用,但我更愿意用异步回调来代替。 我得远远的代码如下。
$("#editbox").editable(submitEdit, {
indicator : "Saving...",
tooltip : "Click to edit...",
name : "Editable.EmailAddress",
id : "elementid",
type : "text",
submit : "<span class=\"mini_button\">Ok</span>",
cssclass : "edit_text"
});
function submitEdit(value, settings)
{
var edits = new Object();
var origvalue = this.revert;
var textbox = this;
edits[settings.name] = [value];
var returned = $.ajax({
url: "http://someurl.com/edit/",
type: "POST",
/*async: false,*/
data : edits,
dataType : "json",
complete : function (XMLHttpRequest, textStatus)
{
alert("Setting back to original value " +origvalue);
$(textbox).html(origvalue);
}
});
/*var response = $.secureEvalJSON(returned.responseText);
if (response.errorMsg != '')
{
$("#ajaxNotify").addClass("ajax_error").html(response.errorMsg);
return(this.revert);
}*/
return(value);
}
我也包括我在评论中同步实现,效果很好。 在高服务器负载情况,直到完成编辑在后端,这将锁定浏览器。 我宁愿这个返回值,如果编辑失败,将其恢复在以后的时间。
谢谢,
编辑
试图抖动建议,并得到它在IE8的工作之后,我意识到这个问题是与FF和铬当我只按一下按钮。 如果我点击了现场,编辑然后按enter键,一切都很好。 回调火灾和值将被重置。
如果我点击了现场,编辑,然后单击确定按钮,不接受,然后验证错误的形式保持活跃,只是坐在那里。 如果收到一个错误,部分执行,文本值被恢复到原来的,但我不能然后再次单击该领域,jeditable已经绑定看来。
我可以证实,帖子和响应的萤火接收这样Ajax是射击。
{ “ERRORMSG”: “”}
为什么这个工作完全在所有浏览器,如果我按enter但如果我点击确定按钮? 同样的代码被执行无论哪种方式,按钮是绝对正确提交表单。
解除绑定的东西也只有在按下按钮发生。
有没有人有使用jeditable和处理服务器端验证等问题,这些中的任何的例子吗?