1

我看过几个关于这个主题的帖子,但没有得到答案。我有一个 onClick 事件,它调用 Uploadfile() 函数,只有在调用 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

我相信您希望在函数完成EnableSaveButton()后调用该UploadFile()函数(或者更具体地说,在UploadFile函数内部的 Ajax 调用完成之后),对吗?

$("#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 回答
1

您在单击处理程序中声明了一个从未调用过的匿名函数。

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

为什么你不会这样做:

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

那么为什么不调用 EnableSaveButton 作为上传文件的 ajax 代码的回调呢。我一直使用这种技术。ajax 请求获取一些数据并将其转储到页面中,然后执行用户定义的回调以调整滚动条、表单元素等。

于 2012-08-28T17:00:37.347 回答
0

这个:

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

声明一个接受一个参数(称为事件)的匿名函数。然后它不会在任何地方被调用。如果你想调用你的函数,那么你可以这样做:

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

或者:

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

或更简单:

EnableSaveButton(); 
于 2012-08-28T16:18:29.517 回答