2011-03-21 7 views
1

내 문제는 : 내 코드를 서버에 호출 한 후 필요한 변경 사항을 반환하면 마스크가 사라집니다. (이것은 업데이트 패널 안의 마스크에서만 발생합니다)UpdatePanel을 사용하는 jQuery 마스크 된 입력 플러그인

추신 : 데이터로 HTML 코드를 연결했지만 try 할 수 없습니다.

그래서 그냥 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 : 내 마스크가 작동합니다. 페이지를 시작할 때만 서버를 호출 한 후 중지합니다.

편집 :

이 내가로드 한 후 update를 tryed 방법이다.



$(".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 않고, 마스크와 자바 스크립트 작업을

+0

당신이 당신의 위치가 FF 열고 문제가 무엇을보고 우리에게 콘솔 오류 정보를 표시 할 수 있습니까? 또한 방화 광을 설치하십시오 – nemke

+0

안녕하세요 nemke =) 코멘트 주셔서 감사합니다. 나는 ff와 방화 광을 이미 가지고있다. 그러나 팁에 감사드립니다, 나는 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을 통해 또는 부분보기 내에 활성화 자바 스크립트를 삽입하여이 작업을 수행 할 수 있습니다. 예를 들어

:

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

안녕하세요 Josiah, 답변 해 주셔서 감사합니다. 나는 그것을 tryed. 나는 내 질문을 나의 미정으로 편집 할 것이다. 하지만 자바 스크립트 = X에 있었는데 –

+0

추신 : 나는 ==) –

+0

코드에서 노력하고있어,하지만 난 다음과 같은 오류가있어 : "Sys가 정의되지 않았습니다"링크에서보세요. 어떤 팁? 나는 나 자신도 찾고있다. 하지만 언제나처럼 환영합니다. =) ** 편집 : ** 나는 당신의 코드를 정확하게 사용하고 function.js 페이지의 마스크 안에 있습니다. –

관련 문제