1

この件に関する投稿をいくつか見ましたが、まったく答えが得られませんでした。Uploadfile() 関数を呼び出す onClick イベントがあります。 Uploadfile() 関数が呼び出された後にのみ、 EnableSaveButton() 関数が呼び出されるようにします。以下に貼り付けたのはコードです。クリックイベント、Uploadfile() 関数、および EnableSaveButton() 関数用に持っています。現在、Uploadfile() のみが呼び出されますが、EnableSavebutton() 関数はトリガーされません。誰かが私が間違っていることを教えていただければ幸いです。

***更新: 質問を言い換えさせてください。UploadFile() が呼び出された後にのみ EnableSaveButton() が呼び出されるようにするにはどうすればよいですか。現在、EnableSaveButton は UploadFile() の前にトリガーされます。

$("#btnUploadFile").click(function(event) {
    event.preventDefault();
    uploadFile();
    EnableSaveButton();

});

function uploadFile() {
    $.get('<%: Url.Action("UploadFile","Files") %>', null, function(getData) {
        $(getData).appendTo('body');
    });
}

function EnableSaveButton() {
    var selectedvalue = $("#FileGuid").val();
    alert(selectedvalue);
    if (selectedvalue != "") {
        $("#btnSave").removeAttr("disabled");
    }
}​
4

5 に答える 5

2
function (event) {
    event.preventDefault();
    EnableSaveButton();
}

この関数は宣言されていますが、割り当ても使用もされていません...したがって、関数EnableSaveButtonは呼び出されません。

于 2012-08-28T16:14:37.817 に答える
1

決して呼び出されないクリック ハンドラーで匿名関数を宣言しています。

function (event) {
    event.preventDefault();
    EnableSaveButton();
}

なぜあなたはこれをしないのですか:

$("#btnUploadFile").click(function (event) {
    event.preventDefault();
    uploadFile();
    EnableSaveButton();
});
于 2012-08-28T16:14:25.370 に答える
1

EnableSaveButton()関数が完了した後UploadFile()(より具体的には、関数内の Ajax 呼び出しが完了した後) に関数を呼び出す必要があると思いますがUploadFile、正しいですか?

$("#btnUploadFile").click(function (event) {
            event.preventDefault();
            uploadFile();
        });

  function uploadFile() {
        $.get(
            '<%: Url.Action("UploadFile","Files") %>',
            null,
            function (getData) {
                $(getData).appendTo('body');
                EnableSaveButton();
            }
        );
    }
于 2012-08-28T16:19:34.603 に答える
0

これ:

function (event) { 
    event.preventDefault(); 
    EnableSaveButton(); 
}

1 つのパラメーター (イベントと呼ばれる) を取る無名関数を宣言します。その後、どこにも呼び出されません。関数を呼び出したい場合は、次のようにします。

(function (event) { 
    event.preventDefault(); 
    EnableSaveButton(); 
})(event);

また:

var handler = function (event) { 
    event.preventDefault(); 
    EnableSaveButton(); 
}
handler();

またはさらに簡単:

EnableSaveButton(); 
于 2012-08-28T16:18:29.517 に答える
0

それでは、ファイルをアップロードする ajax コードへのコールバックとして EnableSaveButton を呼び出さないでください。私はいつもこのテクニックを使っています。ajax リクエストはいくつかのデータを取得してページにダンプし、スクロールバーやフォーム要素などを調整するためにユーザー定義のコールバックが実行されます。

于 2012-08-28T17:00:37.347 に答える