2011-03-21 2 views
1

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

PS: Я попытался связать код html с данными, но я не смог это сделать.

так просто, чтобы показать Ideia:

<ScriptManager> 
    <UpdatePanel> 
    <ContentTemplate> 
     <Table> 
      <asp:TextBox runat="server" ID="txtCnpj" CssClass="cnpj_m" MaxLength="50"/> 
     </Table> 
    </ContentTemplate> 
    </UpdatePanel> 
</ScriptManager> 

В моем коде-за я просто скрыть и показать некоторые элементы. (Это управление ASCX), и мой браузер это:


$(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: моя маска РАБОТАЕТ, когда я запускаю страницу, останавливаюсь только после вызова сервера.

EDIT:

это, как я судимое обновления после загрузки.



$(".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

Вы можете открыть свой сайт в ФФЕ и показать нам консольную информацию об ошибке, чтобы увидеть, что это проблема? Также установите firebug – nemke

+0

Hi nemke =) спасибо за комментарий. У меня есть ff и firebug уже, но спасибо за подсказку, я ценю xD. fb не показывает ошибок, только некоторые предупреждения о css (jquery-ui-css). –

+0

Проверьте эту ссылку http://stackoverflow.com/questions/301473/rebinding-events-in-jquery-after-ajax-update-updatepanel У меня была аналогичная проблема, и я помню, что я решил ее с помощью метода live() jquery – nemke

ответ

5

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

Вы можете сделать это через pageLoaded javascript method, через RegisterStartupScript, или разместив javascript активации на частичном изображении.

Например:

var prm = Sys.WebForms.PageRequestManager.getInstance(); 
prm.add_pageLoaded(function(){ 
    // global partial postback complete 
    // add masks here 
}); 
+0

Привет, Иосия, спасибо за ответ. Я попробовал. я отредактирую свой вопрос с моей предварительной. но был в javascript = X –

+0

PS: я смотрю в ссылке, что u suggest =) –

+0

Josiah, я пытаюсь использовать ваш код, но я получил следующую ошибку: «Sys не определен». какие-нибудь советы ? Я тоже ищу сам. но некоторая хорошая помощь, как ваша, как всегда приветствуется =) ** РЕДАКТИРОВАТЬ: ** Я использую именно ваш код и внутри масок на моей странице functions.js. –

 Смежные вопросы

  • Нет связанных вопросов^_^