最近要搞一个网站,获取控件值总是出现问题,还看到了最后看到了下面的博客解决了问题,原来是因为ASP.NET网页运行后,服务器控件会随机生成客户端id的原因。
转自:http://www.cnblogs.com/Look_Sun/archive/2010/02/20/1669840.html
一 Jquery获得服务器控件值的方法
由于ASP.NET网页运行后,服务器控件会随机生成客户端id,jquery获取时候不太好操作,google了下,总结有以下3种方法:
服务器控件代码:<asp:TextBox ID="txtUserID" runat="server"></asp:TextBox>
1. $("#<%=txtUserID.ClientID%>").val();
2. $("input[id*=txtUserID]").val();
3. $("*[id$=txtUserID]").val();
二 Jquery获得控件值的方法
取值:
或者$("#id").val("new value");
获取一组radio被选中项的值
var item = $('input[@name=items][@checked]').val();获取select被选中项的文本
var item = $("select[@name=items] option[@selected]").text();
select下拉框的第二个元素为当前选中值
$('#select_id')[0].selectedIndex = 1;
radio单选组的第二个元素为当前选中值
$('input[@name=items]').get(1).checked = true;
获取值:
文本框,文本区域:$("#txt").attr("value");
多选框checkbox:$("#checkbox_id").attr("value");
单选组radio: $("input[@type=radio][@checked]").val();
下拉框select: $('#sel').val();
控制表单元素:
文本框,文本区域:$("#txt").attr("value",'');//清空内容
$("#txt").attr("value",'11');//填充内容
多选框checkbox: $("#chk1").attr("checked",'');//不打勾
$("#chk2").attr("checked",true);//打勾
if($("#chk1").attr('checked')==undefined) //判断是否已经打勾
单选组radio: $("input[@type=radio]").attr("checked",'2');//设置value=2的项目为当前选中项
下拉框select: $("#sel").attr("value",'-sel3');//设置value=-sel3的项目为当前选中项
$("<option value='1'>1111</option><option value='2'>2222</option>").appendTo("#sel")//添加下拉框的option
$("#sel").empty();//清空下拉框
三 Jquery获得控件 DropDownList值的方法
<script type="text/javascript">
function bbOK()
{
var a = $("#ddlGuo option:selected").val();
var b = $("#ddlGuo option:selected").text();
$("#txttext").attr("value", b);
$("#txtval").attr("value", a);
}
</script>
<html>
<asp:DropDownList ID="ddlGuo" runat="server" >
<asp:ListItem Selected="True" Value="001">北京市</asp:ListItem>
<asp:ListItem Value="301">南京</asp:ListItem>
<asp:ListItem Value="313">苏州</asp:ListItem>
</asp:DropDownList>
<asp:TextBox ID="txtval" runat="server"></asp:TextBox>
<asp:TextBox ID="txttext" runat="server"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="点击Select" OnClientClick="bbOK();" />
</html>