Mic*_*res 1 asp.net jquery updatepanel mask jquery-plugins
我的问题是:在我的代码调用服务器并且它返回我需要的更改后,我的掩码消失了.(这只发生在更新面板内的掩码)
PS:我尝试用数据链接我的html代码,但我无法做到.
所以只是为了展示意识形态:
<ScriptManager>
<UpdatePanel>
<ContentTemplate>
<Table>
<asp:TextBox runat="server" ID="txtCnpj" CssClass="cnpj_m" MaxLength="50"/>
</Table>
</ContentTemplate>
</UpdatePanel>
</ScriptManager>
Run Code Online (Sandbox Code Playgroud)
在我的代码隐藏中,我只是隐藏并显示一些项目.(这是一个ascx控件),我的javascript是这样的:
$(function () {
$(".data_m").mask("99/99/9999");
$(".telefone_m").mask("9999-9999");
$(".dddtelefone_m").mask("(999) 9999-9999");
$(".ddd_m").mask("(999)");
$(".cep_m").mask("99999-999");
$(".cpf_m").mask("999.999.999-99");
$(".cnpj_m").mask("99.999.999/9999-99");
});
Run Code Online (Sandbox Code Playgroud)
我正在使用jQuery 1.5.1.
还有来自digitalBush的插件Masked Input Plugin
任何人都知道如何解决这个问题?
PS2:我的面具在我启动页面时工作,仅在我调用服务器后停止.
编辑:
这是我在加载后尝试更新的方式.
$(".rbToggle").live('change',function () {
//$("#txtCpf").mask("999.999.999-99");
//$("#txtCnpj").mask("99.999.999/9999-99");
// Edit, i'm using the code below, i put the top as sample, but i guess it may be kind hard to ppl see this sometimes.
$("#%= txtCpf.ClientID %>").mask("999.999.999-99");
$("#%= txtCnpj.ClientID %>").mask("99.999.999/9999-99");
});
Run Code Online (Sandbox Code Playgroud)
EDIT2:我忘了提到没有updatepanel,掩码和javascript工作是完美的
每次重新呈现内容时都需要激活蒙版.因此,当更新面板重新加载时,再次激活掩码.
您可以通过pageLoadedjavascript方法,通过a RegisterStartupScript或将激活javascript放在局部视图中来完成此操作.
例如:
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded(function(){
// global partial postback complete
// add masks here
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4653 次 |
| 最近记录: |