Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .show().hide()和ajax调用 我在.cshtlm表单中有一个js函数,我通过按钮调用它。 我的函数隐藏按钮,显示进度条,调用2个ajax,隐藏进度条,最后显示一条消息。 JS函数代码 var CustomsBook = function () { var month = $("#month").val(); var message = ""; var errorMessage = ""; $("#btn").hide(); $("#prcs").show(); $("#progressbar").show(); $("#successMessage").empty().hide(); $("#dangerMessage").empty().hide(); $.ajax({ async: false, url: "/Logistics/jCustomsBookHQ", type: "POST", data: { month: month }, success: function (HQresponse) { if (HQresponse.success) { message += HQresponse.message; } else { errorMessage += HQresponse.message; } } }); $.ajax({ async: false, url: "/Logistics/jCustomsBookBr", type: "POST", data: { month: month }, success: function (BRresponse) { if (BRresponse.success) { if (message.length > 0) { message += " <br> "; } message += BRresponse.message; } else { if (errorMessage.length > 0) { errorMessage += " <br> "; } errorMessage += BRresponse.message; } } }); $("#prcs").hide(); $("#progressbar").hide(); $("#successMessage").html(message); if (message.length > 0) { $("#successMessage").show(); } $("#dangerMessage").html(errorMessage); if (errorMessage.length > 0) { $("#dangerMessage").show(); } }_Javascript_Jquery - Fatal编程技术网

Javascript .show().hide()和ajax调用 我在.cshtlm表单中有一个js函数,我通过按钮调用它。 我的函数隐藏按钮,显示进度条,调用2个ajax,隐藏进度条,最后显示一条消息。 JS函数代码 var CustomsBook = function () { var month = $("#month").val(); var message = ""; var errorMessage = ""; $("#btn").hide(); $("#prcs").show(); $("#progressbar").show(); $("#successMessage").empty().hide(); $("#dangerMessage").empty().hide(); $.ajax({ async: false, url: "/Logistics/jCustomsBookHQ", type: "POST", data: { month: month }, success: function (HQresponse) { if (HQresponse.success) { message += HQresponse.message; } else { errorMessage += HQresponse.message; } } }); $.ajax({ async: false, url: "/Logistics/jCustomsBookBr", type: "POST", data: { month: month }, success: function (BRresponse) { if (BRresponse.success) { if (message.length > 0) { message += " <br> "; } message += BRresponse.message; } else { if (errorMessage.length > 0) { errorMessage += " <br> "; } errorMessage += BRresponse.message; } } }); $("#prcs").hide(); $("#progressbar").hide(); $("#successMessage").html(message); if (message.length > 0) { $("#successMessage").show(); } $("#dangerMessage").html(errorMessage); if (errorMessage.length > 0) { $("#dangerMessage").show(); } }

Javascript .show().hide()和ajax调用 我在.cshtlm表单中有一个js函数,我通过按钮调用它。 我的函数隐藏按钮,显示进度条,调用2个ajax,隐藏进度条,最后显示一条消息。 JS函数代码 var CustomsBook = function () { var month = $("#month").val(); var message = ""; var errorMessage = ""; $("#btn").hide(); $("#prcs").show(); $("#progressbar").show(); $("#successMessage").empty().hide(); $("#dangerMessage").empty().hide(); $.ajax({ async: false, url: "/Logistics/jCustomsBookHQ", type: "POST", data: { month: month }, success: function (HQresponse) { if (HQresponse.success) { message += HQresponse.message; } else { errorMessage += HQresponse.message; } } }); $.ajax({ async: false, url: "/Logistics/jCustomsBookBr", type: "POST", data: { month: month }, success: function (BRresponse) { if (BRresponse.success) { if (message.length > 0) { message += " <br> "; } message += BRresponse.message; } else { if (errorMessage.length > 0) { errorMessage += " <br> "; } errorMessage += BRresponse.message; } } }); $("#prcs").hide(); $("#progressbar").hide(); $("#successMessage").html(message); if (message.length > 0) { $("#successMessage").show(); } $("#dangerMessage").html(errorMessage); if (errorMessage.length > 0) { $("#dangerMessage").show(); } },javascript,jquery,Javascript,Jquery,当我按下按钮调用$prcs.show函数时;和$progressbar.show;不起作用。如果我使用调试器并一步一步地运行代码,则在ajaxs结束后,Progress栏会显示并隐藏代码。 我尝试为每个ajax编写两个不同的函数,并用对具有相同结果的函数的调用替换ajax代码。 我错过什么了吗? 提前感谢您的帮助。删除此: async: false, 您的浏览器应该在调试控制台上向您发出警告消息,说明该功能已被弃用。但更重要的是,您明确地告诉浏览器同步执行异步操作,所有操作都在单个线程上进行。

当我按下按钮调用$prcs.show函数时;和$progressbar.show;不起作用。如果我使用调试器并一步一步地运行代码,则在ajaxs结束后,Progress栏会显示并隐藏代码。 我尝试为每个ajax编写两个不同的函数,并用对具有相同结果的函数的调用替换ajax代码。 我错过什么了吗? 提前感谢您的帮助。

删除此:

async: false,
您的浏览器应该在调试控制台上向您发出警告消息,说明该功能已被弃用。但更重要的是,您明确地告诉浏览器同步执行异步操作,所有操作都在单个线程上进行。这意味着在所有这些操作完成之前,UI无法更新

允许异步操作是异步的,以便用户界面可以在操作期间更新。在这些操作之后需要发生的任何事情都应该在它们的回调中调用,而不仅仅是在代码中放在它们下面

简言之,async:false是您不需要、不想要并且应该完全避免的拐杖。无论你试图用它来解决什么问题都没有解决,它只是被一个新问题掩盖了

编辑:特别是在代码中,所有这些都应该在success handler函数中,而不是在$.ajax调用之后:

例如:

$.ajax({
  url: "/Logistics/jCustomsBookBr",
  type: "POST",
  data: { month: month },
  success: function (BRresponse) {
    if (BRresponse.success) {
      if (message.length > 0) { message += " <br> "; }
      message += BRresponse.message;
    } else {
      if (errorMessage.length > 0) { errorMessage += " <br> "; }
      errorMessage += BRresponse.message;
    }
    $("#prcs").hide();
    $("#progressbar").hide();
    $("#successMessage").html(message);
    if (message.length > 0) {
      $("#successMessage").show();
    }
    $("#dangerMessage").html(errorMessage);
    if (errorMessage.length > 0) {
      $("#dangerMessage").show();
    }
  }
});

如果您希望在单击按钮后显示一些内容,并且该按钮正在触发ajax请求,则将下面的代码放在success:function BRresponse{方括号内,而不是放在ajax请求之外

 $("#prcs").hide();
 $("#progressbar").hide();
 $("#successMessage").html(message);
 if (message.length > 0) {
  $("#successMessage").show();
 }
 $("#dangerMessage").html(errorMessage);
 if (errorMessage.length > 0) {
  $("#dangerMessage").show();
 }

请同时发布您的代码。您确实需要阅读问题编辑器旁边的格式说明。您的代码当前不可读。我怀疑问题在于您使用了async:false。您浏览器的开发人员工具中应该有一个警告,该警告已被弃用。您看到的行为就是原因。请不要这样做。可能的重复:如果我删除async:false,它只会隐藏按钮,不会显示进度条或message@BourosIoannis:因为显示后会立即隐藏它。$.ajax调用之后的所有代码都应该位于success函数的末尾,因此它会在ajax调用完成时执行。谢谢,我会尝试,也会进行1次ajax调用,在该调用中,我将从控制器运行我的oracle函数
 $("#prcs").hide();
 $("#progressbar").hide();
 $("#successMessage").html(message);
 if (message.length > 0) {
  $("#successMessage").show();
 }
 $("#dangerMessage").html(errorMessage);
 if (errorMessage.length > 0) {
  $("#dangerMessage").show();
 }