ASP.net 中我想用js获取Repeater数据源控件中的input的ID,要怎么获取!
<ItemTemplate><tr><tdclass="style3"><asp:LabelID="lb_emp_id_2"runat="server"Text='<%#...
<ItemTemplate>
<tr>
<td class="style3">
<asp:Label ID="lb_emp_id_2" runat="server" Text='<%# Eval("emp_id") %>' Width="100px"></asp:Label></td>
<td class="style3">
<asp:Label ID="lb_emp_name_2" runat="server" Text='<%# Eval("emp_name") %>' Width="100px"></asp:Label></td>
<td>
<input type="text" runat="server" id="cc" name="inp" onblur="check1('s')" /> </td>
<td>
上面为Repeater中的一部分,我呢要在input的onblur事件中调用js方法check1(),在check1()方法里的参数要传入input控件的ID,但是由于是在Repeater控件里的,不能直接获取,试了好几种方法都不能实现,所以求教高手应该怎么写取获取ID!
我这里做的功能是要获取这个ID然后再获取这个ID所对应的值,去进行计算求和!是一个打分系统! 展开
<tr>
<td class="style3">
<asp:Label ID="lb_emp_id_2" runat="server" Text='<%# Eval("emp_id") %>' Width="100px"></asp:Label></td>
<td class="style3">
<asp:Label ID="lb_emp_name_2" runat="server" Text='<%# Eval("emp_name") %>' Width="100px"></asp:Label></td>
<td>
<input type="text" runat="server" id="cc" name="inp" onblur="check1('s')" /> </td>
<td>
上面为Repeater中的一部分,我呢要在input的onblur事件中调用js方法check1(),在check1()方法里的参数要传入input控件的ID,但是由于是在Repeater控件里的,不能直接获取,试了好几种方法都不能实现,所以求教高手应该怎么写取获取ID!
我这里做的功能是要获取这个ID然后再获取这个ID所对应的值,去进行计算求和!是一个打分系统! 展开
5个回答
展开全部
直接给那个你需要设置ID的那个input加一个class ,然后用jquery迭代所有这个class的控件,取得其值,然后计算不就好么。
例如你给这个input加class为check,然后用jquery迭代就好了。
var sum=0;
$(".check").each(function(){
sum+=$(this).val()
});大概就是这个样子了。
例如你给这个input加class为check,然后用jquery迭代就好了。
var sum=0;
$(".check").each(function(){
sum+=$(this).val()
});大概就是这个样子了。
追问
jquery不怎么懂!我就想能不能直接就用JS就能获取的到!
追答
直接用JS的话是一个有点麻烦的操作,我觉得JQUERY不错 ,挺简单的,很好用。
我觉得JQUERY 没有什么复杂的,核心就是选择器 ,就像CSS一样的选择器,当然JQUERY的选择器更强大一些。
网上有用JS取 class元素的值的,你自己看看。
刚找到的一个
.function getElementsByClassName(n) {
2. var classElements = [],allElements = document.getElementsByTagName('*');
3. for (var i=0; i< allElements.length; i++ )
4. {
5. if (allElements[i].className == n ) {
6. classElements[classElements.length] = allElements[i];
7. }
8. }
9. return classElements;
10.}
使用方法如下:
1.var redClassElements = getElementsByClassName('red');
2.for (var i=0; i<redClassElements.length; i++) {
3. document.alert("*******************");
4.}
展开全部
1楼的方法是可行的:
<td>
<input type="text" runat="server" id="cc" name="inp" onblur="check1(this)" /> </td>
<td>
//script
function check1(input){
这里的input就是你点击的那个
}
<td>
<input type="text" runat="server" id="cc" name="inp" onblur="check1(this)" /> </td>
<td>
//script
function check1(input){
这里的input就是你点击的那个
}
追问
不行的!我试验了下,取到的值为空值!就是null取不到值!
追答
你说传进来的input是null?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个思路是调试不过去的,单纯的理论;
解决方法:去掉js,去后台调试,增加缺少的引用。
repeater,很简单啊!
解决方法:去掉js,去后台调试,增加缺少的引用。
repeater,很简单啊!
追问
我是想直接在前台获得的,不想在后台去写!直接在前台写JS获取input文本框的值!但是现在问题是ID都获取不到,更不用说获取到值了!
追答
服务器控件,必须在后台处理。
或者,你可以把控件类型改掉,变成网页控件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的input的ID在repeater中会存在多个。、
ID不是唯一,不知取来何用?应该是取emp_id(员工编号?)吧,
ID不是唯一,不知取来何用?应该是取emp_id(员工编号?)吧,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
参数设为this 直接吧input传过去 在取ID不就好了?
追问
你能写的清楚点吗?因为这个是Repater控件,直接取ID会有问题的吧!能给个具体的写法么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询