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