0
我有以下aspx/html頁面,它使用jquery來顯示一個模式窗體。每次我點擊一個jquery模式生成的按鈕,它都會在表單上進行回發。我想阻止這一點。 下面是我的腳本jquery ui對話框以及如何停止asp.net webforms回發
作爲答案
< script type = "text/javascript" > $(function() {
$(".addNew").dialog({
autoOpen: false,
width: 300,
height: 300,
resizeable: false,
title: 'New Item',
modal: true,
close: function (event, ui) {
event.preventDefault();
location.reload(false);
return false;
},
buttons: {
"Add": function (evt) {
evt.preventDefault();
var name = $("#<%= txtName.ClientID %>").val();
var surname = $("#<%= txtSurname.ClientID %>").val();
var age = $("#<%= txtAge.ClientID %>").val();
if (Page_ClientValidate("Person")) {
$.ajax({
type: 'POST',
url: 'Dialog.aspx/AddNewItem',
data: '{"name":"' + name + '", "surname":"' + surname + '", "age":' + age + '}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
if (msg.d) {
$("#user").append("<li>" + name + "</li>");
}
},
error: function() {
alert("Error! Try again...");
}
});
}
},
"Cancel": function (evt) {
evt.preventDefault();
$(this).dialog("close");
return false;
}
}
});
$("#add").click(function (event) {
event.preventDefault();
$(".addNew").dialog("open");
return false;
});
});
<a href="#" id="add">Add New</a>
<form id="form1" runat="server">
<div>
UserName
<asp:TextBox ID="UserName" runat="server" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Please enter a username" Display="None" ControlToValidate="UserName" ></asp:RequiredFieldValidator>
</div>
<ul id="user">
</ul>
<div class="addNew" title="Add new Person">
<asp:ValidationSummary ID="ValidationSummary1" runat="server" ValidationGroup="Person" />
<table>
<tr>
<td>Name</td>
<td><asp:TextBox ID="txtName" runat="server" /></td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Please enter a name" Display="None" ControlToValidate="txtName" ValidationGroup="Person"></asp:RequiredFieldValidator>
</tr>
<tr>
<td>Surname</td>
<td><asp:TextBox ID="txtSurname" runat="server" /></td>
</tr>
<tr>
<td>Age</td>
<td><asp:TextBox ID="txtAge" runat="server" /></td>
</tr>
</table>
</div>
</form>
</body>
你的處理程序是否被調用? –
ajax被調用,但是當我關閉ui模式窗體時,頁面會重新發布。 – Podge
很可能是因爲你在close事件中調用了'location.reload'? –