0

所以我有一个名为 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;
        }
    });
}

可悲的是,这不是我的工作,我正在建立一个已经存在的网站。所以问题是服务器响应缓慢。因此,在这几秒钟内,服务器需要发送响应,有人可以编辑另一个字段,从而覆盖当前值。有没有办法实例化变量,这样它们就不会被覆盖?

4

1 回答 1

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);
        }
于 2012-02-01T08:23:26.407 回答