var subsidylCost = document.getElementById("txtSubsidylCost.ClientID").value;

这样获取不到,因为txtSubsidylCost控件由Repeater控件包裹。

你要想获得Repeater里服务器控件(runat="server")的值 必须先知道Repeater里服务器控件ID的命名方式 。

首先Repeater里服务器控件ID的命名方式是 Repeater.ClientID_ctl行号_控件名。行号是从00开始的两位数00 01 02... 如 Repeater1_ctl00_lblBegin 表示Repeater里第一行lblBegin的ID。

代码如下:

<script type="text/javascript">

var repeaterId = '<%=Repeater1.ClientID %>';//Repeater的客户端ID

var rows = <%=Repeater1.Items.Count%>;//Repeater的行数

for (var i = 0; i < rows; i++) {

alert(document.getElementById(repeaterId + "_ctl" + getrownumber(i) + "_lblBegin").value);

alert(document.getElementById(repeaterId + "_ctl" + getrownumber(i) + "_lblDeadline").value);

}

function getrownumber(i) {

if (i > 10) {

return i;

}

else {

return '0' + i;

}

}

</script>

下面的例子是编辑Repeater行时求编辑行合计:

<asp:Repeater ID="rptReimburseDetail" runat="server" OnItemCommand="rptReimburseDetail_ItemCommand"
OnItemDataBound="rptReimburseDetail_RowDataBound">
<ItemTemplate>
<tr>
<td>
<asp:Literal ID="litStartTime" runat="server" Text='<%#Convert.ToDateTime(Eval("StartTime")).ToString("yyyy-MM-dd HH:mm:ss")%>'></asp:Literal>
<asp:TextBox ID="txtStartTime" runat="server" Text='<%#Convert.ToDateTime(Eval("StartTime")).ToString("yyyy-MM-dd HH:mm:ss")%>'
Visible="false" Width="90%" onfocus="WdatePicker({skin:'whyGreen',startDate:'%y-%M-%d 08:30:00',dateFmt:'yyyy-MM-dd HH:mm:ss'})"></asp:TextBox>
</td>
<td>
<asp:Literal ID="litEndTime" runat="server" Text='<%#Convert.ToDateTime(Eval("EndTime")).ToString("yyyy-MM-dd HH:mm:ss")%>'></asp:Literal>
<asp:TextBox ID="txtEndTime" runat="server" Text='<%#Convert.ToDateTime(Eval("EndTime")).ToString("yyyy-MM-dd HH:mm:ss")%>'
Visible="false" Width="90%" onfocus="WdatePicker({skin:'whyGreen',startDate:'%y-%M-%d %H:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss'})"></asp:TextBox>
</td>
<td>
<asp:Literal ID="litBusinessDays" runat="server" Text='<%#Eval("BusinessDays")%>'></asp:Literal>
<asp:TextBox ID="txtBusinessDays" runat="server" Text='<%#Eval("BusinessDays")%>'
Visible="false" onkeyup="CheckNewDecimal(this)" Width="90%"></asp:TextBox>
</td>
<td>
<asp:Literal ID="litStarting" runat="server" Text='<%#Eval("Starting")%>'></asp:Literal>
<asp:TextBox ID="txtStarting" runat="server" Text='<%#Eval("Starting")%>' Visible="false"
Width="90%" onkeyup='AutoDisplayTripCity(this);'></asp:TextBox>
</td>
<td>
<asp:Literal ID="litDestination" runat="server" Text='<%#Eval("Destination")%>'></asp:Literal>
<asp:TextBox ID="txtDestination" runat="server" Text='<%#Eval("Destination")%>' Visible="false"
Width="90%" onkeyup='AutoDisplayTripCity(this);'></asp:TextBox>
</td>
<td>
<asp:Literal ID="litSubsidylCost" runat="server" Text='<%#Eval("SubsidylCost")%>'></asp:Literal>
<asp:TextBox ID="txtSubsidylCost" runat="server" Text='<%#Eval("SubsidylCost")%>'
Visible="false" onkeyup="rptAutoDetailTotal(this)" Width="90%"></asp:TextBox>
</td>
<td>
<asp:Literal ID="litVehicleVesselCost" runat="server" Text='<%#Eval("VehicleVesselCost")%>'></asp:Literal>
<asp:TextBox ID="txtVehicleVesselCost" runat="server" Text='<%#Eval("VehicleVesselCost")%>'
Visible="false" onkeyup="rptAutoDetailTotal(this)" Width="90%"></asp:TextBox>
</td>
<td>
<asp:Literal ID="litAccommodationCost" runat="server" Text='<%#Eval("AccommodationCost")%>'></asp:Literal>
<asp:TextBox ID="txtAccommodationCost" runat="server" Text='<%#Eval("AccommodationCost")%>'
Visible="false" onkeyup="rptAutoDetailTotal(this)" Width="90%"></asp:TextBox>
</td>
<td>
<asp:Literal ID="litUrbanTrafficCost" runat="server" Text='<%#Eval("UrbanTrafficCost")%>'></asp:Literal>
<asp:TextBox ID="txtUrbanTrafficCost" runat="server" Text='<%#Eval("UrbanTrafficCost")%>'
Visible="false" onkeyup="rptAutoDetailTotal(this)" Width="90%"></asp:TextBox>
</td>
<td>
<asp:Literal ID="litOtherCost" runat="server" Text='<%#Eval("OtherCost")%>'></asp:Literal>
<asp:TextBox ID="txtOtherCost" runat="server" Text='<%#Eval("OtherCost")%>' Visible="false"
onkeyup="rptAutoDetailTotal(this)" Width="90%"></asp:TextBox>
</td>
<td>
<asp:Literal ID="litTotalCost" runat="server" Text='<%#Eval("TotalCost")%>'></asp:Literal>
<asp:TextBox ID="txtDetailTotal" runat="server" Width="90%" ReadOnly="true" Visible="false"
Text='<%#Eval("TotalCost")%>'></asp:TextBox>
</td>
<td>
<asp:Literal ID="litCurrency" runat="server" Text='<%#Eval("Currency")%>'></asp:Literal>
<asp:DropDownList ID="ddlCurrency" runat="server" Visible="false" Width="90%">
<asp:ListItem Text="--请选择--" Value=""></asp:ListItem>
<asp:ListItem Text="人民币" Value="人民币"></asp:ListItem>
<asp:ListItem Text="港币" Value="港币"></asp:ListItem>
<asp:ListItem Text="美元" Value="美元"></asp:ListItem>
</asp:DropDownList>
</td>
<td style="text-align: center">
<asp:LinkButton ID="btnDetailEdit" runat="server" Text="编辑" CommandName="Edit" CommandArgument='<%#Eval("ID")%>'></asp:LinkButton>
<asp:LinkButton ID="btnDetailDelete" runat="server" Text="删除" CommandName="Delete"
CommandArgument='<%#Eval("ID")%>'></asp:LinkButton>
<asp:LinkButton ID="btnDetailSave" runat="server" Text="保存" CommandName="Save" CommandArgument='<%#Eval("ID")%>'
Visible="false"></asp:LinkButton>
<asp:LinkButton ID="btnDetailCancel" runat="server" Text="取消" CommandName="Cancel"
CommandArgument='<%#Eval("ID")%>' Visible="false"></asp:LinkButton>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>

js代码如下:

function rptAutoDetailTotal(obj) {

//验证文本框中是否为数字

var reg = /^\d+\.*\d*$/i;
if (!reg.test(obj.value)) {
obj.value = isNaN(parseFloat(obj.value)) ? "" : parseFloat(obj.value);
}

//求和

if (obj.value != "") {
var detailTotal = 0;
var rptIndex = $('<%=hfrptIndex.ClientID %>').value;//编辑行索引
var subsidylCost = document.getElementById("ctl00_contentForm_rptReimburseDetail_ctl" + GetRowNumber(rptIndex) + "_txtSubsidylCost").value;
var vehicleVesselCost = document.getElementById("ctl00_contentForm_rptReimburseDetail_ctl" + GetRowNumber(rptIndex) + "_txtVehicleVesselCost").value;
var accommodationCost = document.getElementById("ctl00_contentForm_rptReimburseDetail_ctl" + GetRowNumber(rptIndex) + "_txtAccommodationCost").value;
var urbanTrafficCost = document.getElementById("ctl00_contentForm_rptReimburseDetail_ctl" + GetRowNumber(rptIndex) + "_txtUrbanTrafficCost").value;
var otherCost = document.getElementById("ctl00_contentForm_rptReimburseDetail_ctl" + GetRowNumber(rptIndex) + "_txtOtherCost").value;

detailTotal += isNaN(parseFloat(subsidylCost)) ? 0 : parseFloat(subsidylCost);
detailTotal += isNaN(parseFloat(vehicleVesselCost)) ? 0 : parseFloat(vehicleVesselCost);
detailTotal += isNaN(parseFloat(accommodationCost)) ? 0 : parseFloat(accommodationCost);
detailTotal += isNaN(parseFloat(urbanTrafficCost)) ? 0 : parseFloat(urbanTrafficCost);
detailTotal += isNaN(parseFloat(otherCost)) ? 0 : parseFloat(otherCost);
document.getElementById("ctl00_contentForm_rptReimburseDetail_ctl" + GetRowNumber(rptIndex) + "_txtDetailTotal").value = parseFloat(detailTotal);
}
}

function GetRowNumber(i) {
if (i > 10) {
return i;
}
else {
return '0' + i;
}
}

JS如何得到Repeater中TextBox控件的值的更多相关文章

  1. c# winform 在一个窗体中使用另一个窗体中TextBox控件的值——解决办法

    [前提]一个winform应用程序项目中,窗体B,需要使用 窗体A 中一个TextBox控件的值,进行计算等操作. [解决方案] 1.在窗体A中定义:public static double a;// ...

  2. [转载]ASP.NET中TextBox控件设立ReadOnly="true"后台取不到值

    原文地址:http://www.cnblogs.com/yxyht/archive/2013/03/02/2939883.html ASP.NET中TextBox控件设置ReadOnly=" ...

  3. js如何获取asp.net服务器端控件的值(label,textbox,dropdownlist,radiobuttonlist等)

    js如何获取asp.net服务器端控件的值(label,textbox,dropdownlist,radiobuttonlist等) 欢迎访问原稿:http://hi.baidu.com/2wixia ...

  4. ASP.NET中TextBox控件设立ReadOnly="true"后台取不到值

    SP.NET中TextBox控件设置ReadOnly="true"H或Enabled=false后台取不到值 当TextBox设置了ReadOnly="true" ...

  5. JS获取填报扩展单元格控件的值

    1. 问题描述 填报预览时,我们想获取到某个控件的值相对来说较容易.但如果控件是扩展的,就只能获取到第一个值,无法根据扩展一行行获取对应的值. 例:本意是想获取到袁成洁,结果还是获取到第一个单元格值孙 ...

  6. C# 清除当前窗体中TextBox控件中的内容

    //当有多个窗体时,对顶层的窗口进行操作,例如:我们开发具有录入功能的界面的时候,为了防止提交后的二次(重复)录入,希望点击提交按钮并提示成功后,界面的所有文本框内容能够自动清空.NET Framew ...

  7. Winform中TextBox控件开启自动提示补全功能

    问题:Winform开发中,有一个TextBox控件用以输入姓名,现希望在输入名字时能够自动提示所有可能的名字. 解答:winform中的TextBox控件含有如下三个属性:   ① AutoComp ...

  8. HTML控件ID和NAME属性及在CS页面获得.ASPX页面中HTML控件的值

    <转载>来自网络 一.ID是在客户端脚本里用!NAME是用于获取提交表单的某表单域信息,在form里面,如果不指定Name的话,就不会发送到服务器端,所以有name属性的控件,必须指定na ...

  9. HTML控件ID和NAME属性的区别,以及如何在asp.net页面的.CS文件中获得.ASPX页面中HTML控件的值

    在html中:name指的是用户名称,ID指的是用户注册是系统自动分配给用户的一个序列号. name是用来提交数据的,提供给表单用,可以重复: id则针对文档操作时候用,不能重复.如:document ...

随机推荐

  1. 解决iOS中tabBarItem图片默认颜色的问题(指定代码渲染模式为以原样模式的方式显示出来)

    解决iOS中tabBarItem图片默认颜色的问题(指定代码渲染模式为以原样模式的方式显示出来) 解决办法:指定图片的渲染模式(imageWithRenderingMode为:UIImageRende ...

  2. 常用mysql笔记

    1.insert into ... values insert into tables (col1,col2) values (1,2),(2,3); 2.insert into ... select ...

  3. 读书笔记_Effective_C++_条款二十二:将成员变量声明为private

    1.格式统一 在调用的时候,不会去想有没有(),一律是有get(),或者set()之类的. 2.封装 能直接访问得越少,表明封装性越高, 封装性越高,我们的顾虑就少了, 例如:我们a.data*0.9 ...

  4. 一个简单C程序的汇编代码分析

    几个重要的寄存器 eip - 用于存放当前所执行的指令地址 esp - 栈(顶)指针寄存器 ebp - 基址(栈底)指针寄存器 简单的C程序 int g(int x) { ; } int f(int ...

  5. CentOS 5.5安装图解教程

    说明:实际生产环境中,CentOS 5.5这个版本相当稳定,而且硬件兼容性也很好,是很多服务器装机者的首选系统,下面介绍CentOS 5.5的具体安装过程   说明:实际生产环境中,CentOS 5. ...

  6. Python socket 广播信息到所有连接的客户端

    Python3,多线程,多客户端,广播数据 #!/usr/bin/env python3 import time import threading import queue import socket ...

  7. 关于javascript 回调函数

    http://segmentfault.com/q/1010000000212522 如何避免Javascript中回调函数的嵌套? http://javascript.ruanyifeng.com/ ...

  8. controller 和 指令 通讯方法

    在 angular 中我们经常会使用多个 controller 和 指令 他们拥有各自的 $scope , 这就产生了跨$scope调用的问题. 有几种常见的方法来可以使用. 方法一 : 指令 req ...

  9. Codeforces 219D Choosing Capital for Treeland

    http://codeforces.com/problemset/problem/219/D 题目大意: 给出一棵树,但是它的边是有向边,选择一个城市,问最少调整多少条边的方向能使一个选中城市可以到达 ...

  10. qt-vs-addin:Qt4和Qt5之VS插件如何共存与使用

    原则上,两者是不可以同时存在的,但是如果都安装了,该如何分别使用他们呢? Qt4 Visual Studio Add-in:官网可以下载安装程序,qt-vs-addin-1.1.11-opensour ...