2011-01-27 37 views
0

如何使用此代碼工作,如果我使用asp.net的web用戶控制?如何使用此代碼工作,如果我使用asp.net的Web用戶控制?

</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 

     <asp:CheckBox ID="CheckBox1" runat="server" /><br /> 
<asp:CheckBox ID="CheckBox2" runat="server" /><br /> 
<asp:CheckBox ID="CheckBox3" runat="server" /><br /> 
<asp:CheckBox ID="CheckBox4" runat="server" /><br /> 
<asp:CheckBox ID="CheckBox5" runat="server" /><br /> 
<asp:CheckBox ID="CheckBox6" runat="server" /><br /> 
<asp:CheckBox ID="CheckBox7" runat="server" /><br /> 
<asp:CheckBox ID="CheckBox8" runat="server" /><br /> 
<asp:CheckBox ID="CheckBox9" runat="server" /><br /> 
<asp:CheckBox ID="CheckBox10" runat="server" /><br /> 
     <asp:Button ID="Button1" runat="server" Text="Button" /> 
    </div> 
    </form> 
    <script src ="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script> 
    <title>Untitled Page</title> 
    <script type="text/javascript"> 

     $("#sumit").click(function(){ 

    var vCheckedCBCount = $("input:checkbox").filter(function(index){ 
    return $(this)[0].checked == true; 
    }).length; 
    if(vCheckedCBCount > 5) 
    { 
     alert('You cannot check more than 5 check box.'); 
     return false; 
    } 
}); 
</script > 
</body> 
</html> 
+0

標題標籤應該在頭部,而不是在體內 – 2011-01-27 10:44:50

回答

1

幾件事情:

首先

$("#sumit").click(function(){...} 

是尋找一個HTML元素 'SUMIT' 的ID(#將意味着JQuery的ID)。

如果您查看頁面的源代碼,您將看到Button1在被ASP.Net轉換爲HTML端按鈕時不會具有該ID,因爲ASP.Net將生成一個相當不可讀的唯一客戶端ID - 可能充滿$符號和下劃線。你可以使用$('。myClass') - '。'來查找你的按鈕。意思是「類」,就像「#」手段「ID」所以只是類submit添加到您的ASP.Net Button1

<asp:Button ID="Button1" runat="server" Text="Button" CssClass='submit' /> 

然後修改您的JavaScript調用: 首先,確保事件處理越來越有線了當該文件是你的JavaScript包裝了標準的jQuery語法裏面做這個準備:

$(document).ready(function() { 
    //Your Javascript goes in here. 
}); 

所以,當重新制定它看起來像這樣(我到處移動的幾件事情,並取出你的<title>元素。 )

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript" language="javascript"> 
    $(document).ready(function() { 
     $(".submit").click(function() { 

      /* this code is here for demo purposes only - 5arx*/ 
      var numchecked = 0; 

      $('input:checkbox').each(function() { 
       if ($(this).attr('checked')) { 
        //alert('checked'); 
        numchecked++; 
       } 
      }); 

      if (numchecked > 5) { 
       alert('You cannot check more than 5 check box.'); 
      } 

      return false; //This will stop your ASP.Net button submitting the form via a Postback. 
      /* Your orginal code. 
      var vCheckedCBCount = $("input:checkbox").filter(function (index) { 
      return $(this)[0].checked == true; 
      }).length; 

      if (vCheckedCBCount > 5) { 
      alert('You cannot check more than 5 check box.'); 

      } 
      */ 
     }); 
    }); 
</script> 
<div> 
    <asp:CheckBox ID="CheckBox1" runat="server" /><br /> 
    <asp:CheckBox ID="CheckBox2" runat="server" /><br /> 
    <asp:CheckBox ID="CheckBox3" runat="server" /><br /> 
    <asp:CheckBox ID="CheckBox4" runat="server" /><br /> 
    <asp:CheckBox ID="CheckBox5" runat="server" /><br /> 
    <asp:CheckBox ID="CheckBox6" runat="server" /><br /> 
    <asp:CheckBox ID="CheckBox7" runat="server" /><br /> 
    <asp:CheckBox ID="CheckBox8" runat="server" /><br /> 
    <asp:CheckBox ID="CheckBox9" runat="server" /><br /> 
    <asp:CheckBox ID="CheckBox10" runat="server" /><br /> 
    <asp:Button ID="Button1" runat="server" Text="Button" CssClass="submit" /> 
</div> 

希望這會有所幫助。要獲得更多有用的JQuery內容,請查看www.visualjquery.com - 它是一個交互式JQuery測試/學習工具。

Hth。祝你好運:-)

-1

$("#sumit")正在尋找具有ID = 「SUMIT」 元件時,既不你的元件具有。假設您想掛鉤按鈕的單擊事件,請嘗試$("#Button1")

+0

雅我已經改變了...我的問題是,我的整個編碼和控制在webusercontrols ...當我拖動該用戶控件到webform.aspx然後它不會工作...否則通常它工作正常...如果我使用webform.aspx頁面中的所有控件和jquery功能,而無需使用webusercontrol .. – user583181 2011-01-27 11:07:31

相關問題