我已经看过几个关于这个主题的帖子,但是得不到答案。我有一个onClick事件,它调用Uploadfile()函数,只有在调用Uploadfile()函数后,我想调用EnableSaveButton()函数。下面粘贴的是代码,我有click事件,Uploadfile()函数和EnableSaveButton()函数。目前只调用Uploadfile(),但不会触发EnableSavebutton()函数。如果有人能告诉我我做错了什么,我将不胜感激。
***更新:让我重新说出这个问题。我如何确保只在调用UploadFile()之后调用EnableSaveButton()。目前发生的事情是,在UploadFile()之前触发EnableSaveButton。
$("#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");
}
}
答案 0 :(得分:2)
function (event) {
event.preventDefault();
EnableSaveButton();
}
此函数已声明但未分配或使用...因此未调用函数EnableSaveButton
。
答案 1 :(得分:1)
您在单击处理程序中声明一个永远不会被调用的匿名函数。
function (event) {
event.preventDefault();
EnableSaveButton();
}
为什么你不会这样做:
$("#btnUploadFile").click(function (event) {
event.preventDefault();
uploadFile();
EnableSaveButton();
});
答案 2 :(得分: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();
}
);
}
答案 3 :(得分:0)
此:
function (event) {
event.preventDefault();
EnableSaveButton();
}
声明一个带有一个参数的匿名函数(称为事件)。然后它不被称为在某个地方。如果您想调用您的函数,那么您可以这样做:
(function (event) {
event.preventDefault();
EnableSaveButton();
})(event);
或:
var handler = function (event) {
event.preventDefault();
EnableSaveButton();
}
handler();
或更简单:
EnableSaveButton();
答案 4 :(得分:0)
那么为什么不调用EnableSaveButton作为上传文件的ajax代码的回调。 我一直都在使用这种技术。 ajax请求获取一些数据并将其转储到页面中,然后执行用户定义的回调以调整滚动条,表单元素等。