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

残念ながら、これは私の仕事ではなく、既存のWebサイトに基づいて構築しています。したがって、問題はサーバーの応答が遅いことです。そのため、これらの数秒でサーバーが応答を送信するのに時間がかかり、誰かが別のフィールドを編集して現在の値を上書きする可能性があります。変数が上書きされないように変数をインスタンス化する方法はありますか?

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 に答える