所以我有一个名为submitEdit()的函数:
function submitEdit() {
//var ffield = document.getElementById("form_eline");
//ffield.submit();
jQuery('#edit_line').css('visibility', 'hidden');
var fieldName = jQuery('#form_eline input[name=efield]').val();
var pageId = jQuery('#form_eline input[name=eid]').val();
var fieldText = jQuery('#ve'+fieldName+'_'+pageId);
var editBtn = fieldText.prev();
var loading = document.createElement("img");
loading.src = 'http://www.lookall.tv/html/res/img/loading.gif';
loading.id = "loading";
loading.width = 16;
loading.height = 16;
jQuery('#form_eline').ajaxSubmit({
beforeSubmit: function() {
editBtn.hide();
fieldText.prepend(loading);
},
error: function(data) {
jQuery('#edit_line').css('visibility', 'visible');
},
success: function(response) {
fieldText.text(jQuery('#form_eline :text').fieldValue()[0]);
editBtn.show();
jQuery('img#loading').remove();
return true;
}
});
}
可悲的是,这不是我的工作,而是建立在已有的网站上。所以问题是服务器响应缓慢。因此,在几秒钟内服务器发送响应,有人可以编辑另一个字段,从而覆盖当前值。有没有办法实例化变量,所以它们不会覆盖?
答案 0 :(得分:1)
如果用户更改HTML元素的值,variables
将不会受到影响。
如果您希望用户知道他将要做的更改将不会影响,因为已经发送了请求。只是禁用元素。
beforeSubmit: function() {
editBtn.hide();
fieldText.prepend(loading);
$('#form_eline input, select, textarea').prop('disabled', true);
},
complete: function (){
editBtn.show();
$('#form_eline input, select, textarea').prop('disabled', false);
}