如何使用Javascript获取网格中一行中所有文本框的客户端id?

如何使用Javascript获取网格中一行中所有文本框的客户端id?,javascript,asp.net,Javascript,Asp.net,我有一个可编辑的Gridview(其中包含7个可编辑字段/文本框) 在按钮(更新)上单击“我想找到所有文本框的id”,以便检查文本框是否为空。 为此,我在chromeGridSubMeter\u ctl10\u txtMeterIdnbut中将其作为客户端id的文本框来执行 但是客户端id在不同的浏览器中动态生成(在firefox、opera中不同) GEIDVIEW JS函数 function fnCheck(val) { var success = tr

我有一个可编辑的Gridview(其中包含7个可编辑字段/文本框) 在按钮(更新)上单击“我想找到所有文本框的id”,以便检查文本框是否为空。 为此,我在chromeGridSubMeter\u ctl10\u txtMeterIdnbut中将其作为客户端id的文本框来执行 但是客户端id在不同的浏览器中动态生成(在firefox、opera中不同)

GEIDVIEW

JS函数

   function fnCheck(val) {
               var success = true;
               var text1 = val.value;
               var v = val.id.split('_')[2];
               var merter = document.getElementById('GridSubMeter_' +  v +'txtMeterIdn_' ).value.trim();
               var Billper = document.getElementById('GridSubMeter_' + v + 'txBillPer_' ).value.trim()
               var Endkwh = document.getElementById('GridSubMeter_' + v + 'txEndKwh_' ).value.trim();
               var startkwh = document.getElementById('GridSubMeter_' + 'txStartKwh_').value.trim();
               var ReadEndDate = document.getElementById('GridSubMeter_' +  v+'txReadEndDate_' ).value.trim();
               var ReadStartDate = document.getElementById('GridSubMeter_' + v+'txReadStartDate_' ).value.trim();
               var CTFACT = document.getElementById('GridSubMeter_' + v+ 'txCTFact_' ).value.trim();

               var btn = document.getElementById('GridSubMeter_' + v+'btn_Update_' );
               debugger;
                           if (merter != '') {
                           }
                           else {
                               alert("Meter Identifier is Required Field");
                               success = false;
                           }
               if (Billper != '') {
               }
               else {
                   alert("Bill Period is Required Field");
                   success = false;
               }
               if (Endkwh != '') {
               }
               else {
                   alert("EndKwh is Required Field");
                   success = false;
               }
               if (startkwh != '') {
               }
               else {
                   alert("StartKwh is Required Field");
                   success = false;
               }
               if (ReadEndDate != '') {
               }
               else {
                   alert("Read EndDate is Required Field");
                   success = false;
               }
               if (ReadStartDate != '') {
               }
               else {
                   alert("Read StartDate is Required Field");
                   success = false;
               }
                           if (CTFACT != '') {
                           }
                           else {
                               alert("CT Factor is Required Field");
                               success = false;
                           }
ASPX按钮代码

  <EditItemTemplate>
    <asp:Button ID="btn_Update" CausesValidation="false" runat="server" OnClientClick="return fnCheck(this);" Text="Update" CommandName="Update" />
    </EditItemTemplate>

一个简单的解决方案是添加静态的类名,这样即使id是动态输入的,您也始终能够查询上下文。例如,如果每个文本字段都有类
textBox
,您可以这样做

var boxes = document.getElementsByClassName("textBoxes");
然后遍历传回的节点列表

for(var x = 0; x < boxes.length; x++){

console.log(boxes[0].id);

}
for(var x=0;x
在命名ID时,不应使用
-
/
或任何其他非字母数字字符

我建议在命名ID时使用camel case,在命名类时使用train case。对javascript使用ID,对样式(CSS)相关代码使用类

通过遵守此约定,您的ID在不同浏览器中的命名不会有所不同

for(var x = 0; x < boxes.length; x++){

console.log(boxes[0].id);

}