[英]ASP.NET PostBack after AJAX response
我正在使用舊版Web應用程序-有一個帶有一些文本輸入和一些文件輸入的表單,並且該表單保存在PostBack上。
HTML:
<input id="txt1" name="txt1" type="text" />
<input id="hfd1" name="hfd1" type="hidden" value="-1" />
<input id="file1" name="file1" runat="server" type="file" />
<asp:Button ID="btnSave" runat="server" OnClientClick="return PrepareSave()" OnClick="btnSave_Click" Text="Save" />
JS:
function PrepareSave() {
$('#hfd1').val($('#txt1').val());
return true;
}
我需要在PrepareSave()
內發送一個AJAX請求以驗證服務器上的字段,並根據響應選擇是否使用PostBack進行操作。 我已經試過了:
function PrepareSave() {
Project1.Web.Services.AJAXService1.CheckSomething(someString, function (result) {
if (result == true) {
// continue PostBack
$('#hfd1').val($('#txt1').val());
return true;
}
else {
// abort PostBack
alert('invalid');
return false;
}
});
}
但這是失敗的-無論AJAX響應如何,它都不會回發。 我已經嘗試過在這里實現可接受的答案,但是它也有同樣的問題。 我該怎么做才能使其正常工作?
我嘗試簡化上面接受的答案,以對其進行測試:
<asp:Button ID="btnSave" runat="server" ClientIDMode="Static" OnClientClick="PrepareSave(); return false;" Text="Save" />
<asp:Button ID="btnSaveHidden" runat="server" ClientIDMode="Static" OnClick="btnSave_Click" Visible="False" />
function PrepareSave() {
$('#btnSaveHidden').click(); // does nothing. also tried .trigger('click')
}
在后面的代碼中,您可以執行以下操作:
ClientScript.RegisterStartupScript(GetType(), "ReloadParent", "window.parent.location.href = window.parent.location.href;", true);
或在js中,單獨使用腳本部分:
window.parent.location.href = window.parent.location.href;
hth。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.