遇到了这样的问题:我在datalist里放了几个HiddenField,但要读数的时候,总显示最后一条数据。生成源码,其它数据也读出来了,可在js里就是取不出来。不解,还请达人帮助。HTML:
<div class="pro_size">
团费:<strong>1</strong>星
<ul>
<asp:DataList ID="DataList1" runat="server" RepeatDirection="Horizontal" RepeatColumns="3">
<ItemTemplate>
<li><span>
<%# Eval("service_stars")%>
</span></li>
<asp:HiddenField ID="f_h1" runat="server" Value='<%# Eval("service_des") %>' />
<asp:HiddenField ID="f_h2" runat="server" Value='<%# Eval("service_pice") %>' />
</ItemTemplate>
</asp:DataList>
</ul>
</div> JS脚本:
$(".pro_size li span").click(function(){ $("#Text1").attr("value",$(this).text()); //填充内容
$("#Text2").attr("value",$(" f_h1").val());//填充内容
})
<div class="pro_size">
团费:<strong>1</strong>星
<ul>
<asp:DataList ID="DataList1" runat="server" RepeatDirection="Horizontal" RepeatColumns="3">
<ItemTemplate>
<li><span>
<%# Eval("service_stars")%>
</span></li>
<asp:HiddenField ID="f_h1" runat="server" Value='<%# Eval("service_des") %>' />
<asp:HiddenField ID="f_h2" runat="server" Value='<%# Eval("service_pice") %>' />
</ItemTemplate>
</asp:DataList>
</ul>
</div> JS脚本:
$(".pro_size li span").click(function(){ $("#Text1").attr("value",$(this).text()); //填充内容
$("#Text2").attr("value",$(" f_h1").val());//填充内容
})
解决方案 »
- 求jquery 高手帮忙看看我的代码
- jquery click一次触发两次?怎么解决
- 弹出一个DIV层(同时此页面变为半透明不可选状态),此时DIV层中ListBox的选择某项不起作用问题
- extjs获取第一列的el
- 用js判断网页源代码中是否包含一部分代码怎么写付部分程序请看
- 是不是JavaScripti不能在FireFox上运行?
- NULL为空或不是对象
- 初学,指点指点。
- 请教关于WebCalendar日历控件的问题
- 菜鸟问题:有两个select 组件选择一个的一项自动增加到另一个里面
- JSON 和字符串的转换
- eval("document.list_info."+labels[0]+".value")=dates[0]有问题
直接用<input type="hidden" ID="f_h1" Value=' <%# Eval("service_des") %>'/>
for(var i=0;i<o.length;i++){
if(o[i].type=="hidden"){}
}
//放到onload里面
$(function() {
$(".pro_size li span").click(function() {
debugger;
$("#Text1").attr("value", $(this).text()); //填充内容
$("#Text2").attr("value", $("#f_h1").val()); //填充内容
})
});
如果生成的代码是下面这样的 <input type="text" id="Text1" />
<input type="text" id="Text2" />
<div id="div1">
<div class="pro_size">
<ul>
<li><span>test1 </span></li>
<li><span>test2 </span></li>
<input type="hidden" id="f_h1" value='f_h1' />
<input type="hidden" id="f_h2" value='f_h2' />
</ul>
</div>
</div>
楼主你的那个服务器端控件放在容器控件里面生成html代码的时候客户端的id会变的
$("#f_h1").val()就会取不到值
就是这个:ctl00_ContentPlaceHolder1_DataList1_ctl00_f_h1。原因很简单,只是自己太大意了,数据遍历之后才能取出,原先取的都是最后一条,其它的都是无法识别。原代如下:
var obj_this =this;
var o=obj_this.parentNode.parentNode.getElementsByTagName('input');
for(var i=0;i <o.length;i++){
if(o[i].type=="hidden"){
if(o[i].id.indexOf('Text1')!=-1)
alert('当前行的ID是'+o[i].value);
else if(o[i].id.indexOf('Text30')!=-1)
alert('当前行的Name是'+o[i].value);
}
}