2010-02-28 75 views
1

我想改变为文本框输入掩码当复选框已检查或unckecked但总是被捡别人condation只有偶数复选框这是问题检查与否。的jQuery在asp.net问题复选框

请咨询来解决这个问题。

这里是我的代码:该复选框被渲染之前

<%@ 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"> 



    if ($('#chkhtml:checked').size() > 0) 
{ 
jQuery(function($) { 

     $("#txthtml").mask("999-99-9999"); 
    }); 
} else { 
jQuery(function($) { 

     $("#txthtml").mask("99/99/9999"); 
    }); 
} 

</script> 


</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 
<input id="chkhtml" type="checkbox" checked="checked" /> 

</asp:Content> 
+0

你需要学习JavaScript。 – SLaks 2010-02-28 12:05:28

回答

0

你的代码运行。因此,代码运行时,没有复选框。

您需要将整个if块封装在$(function() { ... })中,该文件将在文档完成加载后执行函数中的代码。

例如:

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

或者,你可以使用条件的内联:

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

感谢您的帮助, 现在用你的代码,当页面加载我将有其他条件的面具,当我检查箱子没有发生,这会发生两个码。 是否错过任何要添加到复选框标记的属性以及我应该怎么做? – Eyla 2010-02-28 05:28:10

+0

无论何时单击复选框,您都需要向click事件添加处理程序以运行代码。 – SLaks 2010-02-28 05:30:33

+0

你能帮助我这个请,因为我是新的Java脚本和jQuery – Eyla 2010-02-28 05:40:34

1
<script type='text/javascript'> 
    $('#chkhtml').click(function(){ 
     if ($(this).attr('checked')) 
      $("#txthtml").mask("999-99-9999"); 
     else 
      $("#txthtml").mask("99/99/9999"); 
    }); 

    $(function(){ 
     $("#txthtml").mask("99/99/9999"); // this is default mask 
    }); 
</script> 

我猜你要更改的面具时复选框改变其状态,但你不知道你怎么能做到这一点。

+0

当我想你的代码文本框中将没有面具,当我选中该复选框没有发生! 有什么建议吗? – Eyla 2010-02-28 05:29:39

+0

您可以在加载时提供默认掩码。查看修改后的代码。 – 2010-02-28 07:13:20

0

随着其他的答案,这里是做到这一点的另一种方法...

<script type='text/javascript'> 

    $(document).ready(function() { 

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

    }); 

</script> 
+0

当我尝试你的代码的文本框将没有面具,没有任何事情发生时,我检查复选框!有什么建议? – Eyla 2010-02-28 05:33:14