Плагин маскированного ввода для jQuery с UpdatePanel - PullRequest
1 голос
/ 21 марта 2011

Моя проблема: после того, как мой код позвонил на сервер и он вернулся с изменением, которое мне нужно, моя маска исчезла. (это происходит только с маской внутри панели обновления)

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.

И плагин Плагин для маскирования ввода от 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: я забыл упомянуть, что без updatepan, маска и javascript работают идеально

Ответы [ 2 ]

5 голосов
/ 21 марта 2011

Вам необходимо активировать маски каждый раз, когда содержимое перерисовывается. Поэтому, когда панель обновлений перезагрузится, снова активируйте маски.

Это можно сделать с помощью метода javascript pageLoaded , RegisterStartupScript или путем помещения JavaScript активации в частичное представление.

Например:

var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded(function(){
    // global partial postback complete
    // add masks here
});
0 голосов
/ 30 января 2019

Я поместил свою маскирующую привязку в функцию pageLoad

<script type="text/javascript">
 function pageLoad() {
     $('.decimal_right').inputmask('decimal', {
         rightalign: true,
         allowminus: false
     });
 }
</script>
...