2010-02-28 72 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