C# 为什么文本框在回发时失去屏蔽?
我已经在不同的论坛上多次问过这个问题,但没有任何帮助,希望我能再次发帖。请帮忙 我已将JqueryMasking应用于文本框,即NIC掩蔽。它在最初加载页面时工作,但在发生回发时停止工作,即没有应用掩码。为什么?C# 为什么文本框在回发时失去屏蔽?,c#,jquery,asp.net,c#-4.0,masking,C#,Jquery,Asp.net,C# 4.0,Masking,我已经在不同的论坛上多次问过这个问题,但没有任何帮助,希望我能再次发帖。请帮忙 我已将JqueryMasking应用于文本框,即NIC掩蔽。它在最初加载页面时工作,但在发生回发时停止工作,即没有应用掩码。为什么? jQuery(function ($) { $("#txtBoxComplainantCNIC").mask("99999-9999999-9", { placeholder: "" }); }); 文本框: <asp:TextBox ID="tx
jQuery(function ($) {
$("#txtBoxComplainantCNIC").mask("99999-9999999-9", { placeholder: "" });
});
文本框:
<asp:TextBox ID="txtBoxComplainantCNIC" runat="server" onkeypress="return isNumberKeyCNIC(this)" ClientIDMode="Static" placeholder="XXXXX-XXXXXXX-X" MaxLength="15" CssClass="form-control"></asp:TextBox>
文本框位于UpdatePanel中 看起来您的问题在于,您已经向JQuery注册了一个函数,以便在页面加载时执行。那是什么
jQuery(function ($) {
$("#txtBoxComplainantCNIC").mask("99999-9999999-9", { placeholder: "" });
});
是的。然而,这意味着代码将只在页面加载时执行。您的问题是,在UpdatePanel
中,回发是异步进行的(无页面加载),因此您的函数不会第二次启动,您的文本框将丢失其掩码
您可能要做的是注册脚本的这一部分
$("#txtBoxComplainantCNIC").mask("99999-9999999-9", { placeholder: "" });
在代码隐藏中,以便ASP.NET知道在UpdatePanel
发回时执行它。它看起来像这样:
void Page_Load(object sender, EventArgs e)
{
var setMaskScript = "$('#txtBoxComplainantCNIC').mask('99999-9999999-9', { placeholder: '' });";
ScriptManager.RegisterStartupScript(updatePanelID, this.GetType(), "SetMask", setMaskScript, true);
}
其中,updatePanelID
是您的UpdatePanel
的ID
这就解释了RegisterStartupScript
及其与UpdatePanel
的交互
另外。其中之一就是简单地向客户端代码添加pageLoad函数
pageLoad(){
$("#txtBoxComplainantCNIC").mask("99999-9999999-9", { placeholder: "" });
}
在回发页面的控件上,使用以下代码:
ScriptManager.RegisterStartupScript(Page, Page.GetType, "temp", "<script type='text/javascript'>$('#txtBoxComplainantCNIC').mask('99999-9999999-9');</script>", False)
ScriptManager.RegisterStartupScript(Page,Page.GetType,“temp”,“$('#txtboxcomplaminantnic')).mask('99999-999999-9');,False)
页面上写的jquery函数在哪里?哪个事件?如果文本框位于更新面板中,回发可能异步发生,并且jquery函数仅在页面加载时启动。您可能想使用ScriptManager.RegisterStartupScript注册脚本。@techspider先生,在脚本标记内,头部。@BertEvans先生,怎么做?我在这方面完全是幼稚的,先生。我同意@BertEvans,你可以在谷歌上搜索如何添加脚本。让我试试,先生,我会让你know@StackyFlowy请原谅我可能会问一些愚蠢的问题,但您知道背后的代码是什么以及如何修改它吗?具体来说,你知道你的页面加载功能在哪里(如果你已经有了的话)。@StackyFlowy我添加了一个额外的链接,可能会有所帮助。我现在得走了。祝你好运,这是什么?人们几乎不知道这是怎么回事。请编辑您的答案,以便人们能够理解您试图解释的内容。请详细说明答案,让人们知道为什么答案会起作用。