我的问题是:在我的代码调用服务器并且它返回我需要的更改后,我的掩码消失了。 (这只发生在更新面板内的掩码中)
PS:我试着用我的html代码链接数据,但我无法做到。
所以只是为了展示意识形态:
<ScriptManager>
<UpdatePanel>
<ContentTemplate>
<Table>
<asp:TextBox runat="server" ID="txtCnpj" CssClass="cnpj_m" MaxLength="50"/>
</Table>
</ContentTemplate>
</UpdatePanel>
</ScriptManager>
在我的代码隐藏中,我只是隐藏并显示一些项目。 (这是一个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");
});
我正在使用jQuery 1.5.1。
插件Masked Input Plugin from digitalBush
任何人都知道如何解决这个问题?
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");
});
EDIT2:我忘了提到没有updatepanel,掩码和javascript工作是完美的
答案 0 :(得分:5)
每次重新呈现内容时都需要激活蒙版。因此,当更新面板重新加载时,再次激活掩码。
您可以通过pageLoaded
javascript method,RegisterStartupScript
或将激活javascript置于局部视图中来执行此操作。
例如:
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded(function(){
// global partial postback complete
// add masks here
});
答案 1 :(得分:0)
我已将遮罩绑定放入 pageLoad 函数
<script type="text/javascript">
function pageLoad() {
$('.decimal_right').inputmask('decimal', {
rightalign: true,
allowminus: false
});
}
</script>