日期:2014-05-17  浏览次数:20467 次

关于jquery和.net控件问题(高手进) 小弟刚学习jquery
主要功能:点击复选框的时候 即时显示选择的值

 <script src="js/jquery-1.4.2.js" type="text/javascript"></script>
  <script type="text/javascript">
  $(function () {
  $("input[name=names]").click(function () {
  var arr = new Array(); $("input[name=names]:checked").each(function (key, value) { arr[key] = $(value).val(); });
  $("#msgNames").text("共选中" + arr.length + "项:" + arr.join(","));
  });});
   
  </script>

  <input type="checkbox" name="names" value="tom" />tom
  <input type="checkbox" name="names" value="jim" />jim
  <input type="checkbox" name="names" value="mark" />mark
  <input type="checkbox" name="names" value="travis" />travis
  <input type="checkbox" name="names" value="barly" />barly
  <p id="msgNames"></p>

首先页面是html时候运行正常


但是改为aspx时候不知道如何改jquey代码 感觉jquery无法操作服务端控件 

<form id="form1" runat="server">
  <asp:CheckBox ID="CheckBox1" name="names" value="tom" runat="server" />
  <asp:CheckBox ID="CheckBox2" name="names" value="jim" runat="server" />
  <asp:CheckBox ID="CheckBox3" name="names" value="mark" runat="server" />
  <asp:CheckBox ID="CheckBox4" name="names" value="travis" runat="server" />
  <asp:CheckBox ID="CheckBox5" name="names" value="bakerly" runat="server" />
  <br />
  <asp:Label ID="msgNames" runat="server" Text=""></asp:Label>

------解决方案--------------------
$('<%CheckBox3.ClientID%>')
这个js代码要放在body里,放在head里会报错
------解决方案--------------------
'<% =CheckBox3.ClientID%>'
少写了个=
------解决方案--------------------
C# code
$("#<% =CheckBox3.ClientID%>")

------解决方案--------------------
jquery是js库,js可以操作html元素,而你所谓的服务端控件,最终呈现到页面上仍然是html元素(不信用浏览器打开后查看源文件就知道了),所以不要把服务端控件特殊化
至于jquery操作失败的原因,你用浏览器打开查看源文件后看看那些asp控件在页面生成的元素,它们的属性是不是有变化,你应根据生成的页面元素的属性值来获取控件才能成功
------解决方案--------------------
就这么写并不行么? checkbox解析出来的源码也是input啊,name属性是不会变的,还是一样的啊
------解决方案--------------------
<div id="div_list">
<asp:CheckBox ID="CheckBox1" name="names" value="tom" runat="server" />
<asp:CheckBox ID="CheckBox2" name="names" value="jim" runat="server" />
<asp:CheckBox ID="CheckBox3" name="names" value="mark" runat="server" />
<asp:CheckBox ID="CheckBox4" name="names" value="travis" runat="server" />
<asp:CheckBox ID="CheckBox5" name="names" value="bakerly" runat="server" />
</div>

var k = $("#div_list :checked").length; 这一句代码就可以搞定选择了多少个