2010-02-28 6 views
3

J'essaie de masquer la zone de texte avec 2 masques différents lorsqu'une case à cocher a été cochée avec jquery.masque pour zone de texte ASP utilisant jquery

J'ai essayé mon code avec la boîte de texte html et la case à cocher html et cela fonctionne bien mais quand j'ai essayé mon code avec la boîte de texte d'asp et la case à cocher d'asp il n'y a aucune réponse.

un conseil?

voici mon code:

<%@ Page Title="" Language="C#" MasterPageFile="~/Imam.Master" AutoEventWireup="true" CodeBehind="WebForm4.aspx.cs" Inherits="Imam_Contacts.WebForm4" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 

<script src="js/jquery-1.4.1.js" type="text/javascript"></script> 


    <script src="js/jquery.maskedinput-1.2.2.js" type="text/javascript"></script> 
     <script type="text/javascript"> 

      $(document).ready(

function() { 

    $('#chkhtml').click(

function() { 
    if ($('#chkhtml:checked').length > 0) { 
     $("#txthtml").mask("999-99-9999"); 
    } else { 
     $("#txthtml").mask("99/99/9999"); 
    } 
}); 

}); 

$(document).ready(

function() { 

    $('#chkasp').click(

function() { 
    if ($('#chkasp:checked').length > 0) { 
     $("#txtasp").mask("999-99-9999"); 
    } else { 
     $("#txtasp").mask("99/99/9999"); 
    } 
}); 

}); 
    </script> 


</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 
    <asp:CheckBox ID="chkasp" runat="server" /> 
    asp:<asp:TextBox ID="txtasp" runat="server"></asp:TextBox> 
    <input id="chkhtml" type="checkbox" checked="checked" title="chkhtml" />HTML <input id="txthtml" type="text" />&nbsp; 

</asp:Content> 

Répondre

5

Lorsque vos commandes sont à l'intérieur une autre INamingContainer leurs papiers d'identité sont plus que (dans votre cas au moins Content2$chkasp au lieu de chkasp, peut-être plus), utilisez .ClientID pour résoudre ce problème, comme ceci:

$(function() { 
    $('#<%=chkasp.ClientID %>').click(function() { 
    if ($(this).is(':checked')) { 
     $("#<%=txtasp.ClientID %>").mask("999-99-9999"); 
    } else { 
     $("#<%=txtasp.ClientID %>").mask("99/99/9999"); 
    } 
}); 

Ou raccourcir vers le bas en utilisant une expression conditionnelle:

$('#<%=chkasp.ClientID %>').click(function() { 
    $("#<%=txtasp.ClientID %>").mask($(this).is(':checked') ? 
            "999-99-9999" : "99/99/9999"); 
}); 
+0

merci, cela m'a aidé – SheldonH

Questions connexes