【发布时间】:2014-01-19 01:26:15
【问题描述】:
我是 jquery 新手,请帮我解决以下问题。
我有一个模态弹出窗口,在弹出窗口中我有两个 asp 按钮(搜索和关闭)。单击搜索按钮时我要执行验证,然后触发服务器按钮单击事件,单击关闭按钮时我要关闭对话框。
面临的问题: 1. Onclick 搜索 jquery 验证正在发生,但服务器端事件没有被触发。 2. Onclick of close,对话框只第一次关闭,但点击搜索按钮一次后,关闭JQUERY没有被触发。
下面是代码:
打开对话框的按钮
<asp:Button ID="btnOpenDialog" runat="server" Text="Change"/>
jquery 打开对话框
$("[id*=btnOpenDialog]").live("click", function () {
$("#modal_dialog").dialog({
title: "Details",
modal: true,
width: "700px"
});
return false;
})
带有 asp 按钮的对话框
<div id="modal_dialog" style="display:none">
<asp:Label ID="lblError" runat="server" Visible="true" ForeColor="Red"></asp:Label>
<asp:Label ID="lblLastName" runat="server" Text="Last Name"></asp:Label>
<asp:TextBox ID="txtLastName" Width="100px" runat="server"></asp:TextBox>
<asp:Label ID="lblFirstName" runat="server" Text="First Name"> </asp:Label>
<asp:TextBox ID="txtFirstName" Width="100px" runat="server"></asp:TextBox>
<asp:Button ID="btnSearch" UseSubmitBehavior="false" runat="server" Text="Search" OnClick="btnSearch_Click"/>
<asp:Button ID ="btnClose" Text="Close" runat="server"></asp:Button>
</div>
btnSearch JQUERY
$("[id*=btnSearch]").live("click", function (e) {
//e.preventDefault();
var firstName = $("#<%= txtFirstName.ClientID %>").val();
var lastName = $("#<%= txtLastName.ClientID %>").val();
if(firstName == "" & lastName == "")
{
$("#<%= lblError.ClientID %>").text("Enter minimum two characters in either first name or last name");
return false;
}
else
{
$("#<%= lblError.ClientID %>").text("");
$("#hdnFirstNameInitiator").val($("#<%= txtFirstName.ClientID %>").val());
$("#hdnLastNameInitiator").val($("#<%= txtLastName.ClientID %>").val());
return true;
}
})
关闭按钮 JQUERY
$("[id*=btnClose]").live("click", function (e) {
//e.preventDefault();
$("#modal_dialog").dialog('close');
return true;
})
如果可能的话,请简要介绍一下 jquery 中的 e.preventDefault() 和 appendTo 函数。
请帮忙。
提前致谢,
【问题讨论】:
-
验证通过还是失败?
-
@Skeen,验证正在运行