我有GridView
呈现一张桌子。该表包含文本字段和输入字段。
我编写了以下jQuery
来禁用焦点上的文本字段。它工作正常:
$(function(){
$('input[type="text"]').live("focus", function() {
var rowId = $(this).attr('id');
var inputField = $(this).attr('name');
alert(inputField.indexOf('txtSearchValue'));
$('tr').each(function(){
var inputId = $(this).find('input[type="text"]').attr('id');
var submitId = $(this).closest("tr").find('input[type="submit"]').attr('id');
if(inputId != null && typeof inputId !== "undefined"){
if(rowId !== inputId){
$(this).find('input[type="text"]').attr("disabled", "disabled");
$(this).closest("tr").find('input[type="submit"]').attr("disabled","disabled");
}
}
});
});
});
我还有另一个文本字段,它不是生成的表的一部分,但每次单击属于该表的文本字段时它也会被禁用。
这是一个文本字段:
<input id="ctl00_ContentMain_txtSearchValue" type="text" value="2222" name="ctl00$ContentMain$txtSearchValue"></input>
我试图使用:
var inputField = $(this).attr('name');
inputField.indexOf('txtSearchValue');
访问该额外字段,但我不确定如何将其与jQuery
结合使用,以确保始终启用该字段。
有什么想法吗?
如何修改它,所以,额外的字段
这是我的html表:
<TABLE style="POSITION: absolute; BORDER-BOTTOM-COLOR: red; BORDER-TOP-COLOR: red; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: red; BORDER-LEFT-COLOR: red; TOP: 150px" id=ctl00_ContentMain_grvIsoSearchResults class=DataWebControlStyle border=1 rules=all cellSpacing=0>
<TBODY>
<TR class=HeaderStyle>
<TH scope=col>ISONUM</TH>
<TH scope=col>OFFICE NAME</TH>
<TH scope=col>REGION</TH>
<TH scope=col>DIVISION</TH>
<TH scope=col>EMAIL ADDRESS</TH></TR>
<TR class=RowStyle>
<TD><SPAN style="TEXT-ALIGN: center; WIDTH: 70px; DISPLAY: inline-block" id=ctl00_ContentMain_grvIsoSearchResults_ctl02_txtgvIsoNum>222222222 </SPAN>
</TD>
<TD><SPAN style="TEXT-ALIGN: center; WIDTH: 200px; DISPLAY: inline-block" id=ctl00_ContentMain_grvIsoSearchResults_ctl02_txtgvIsoOfficeName>Test, Eugene Test </SPAN>
</TD>
<TD><SPAN style="TEXT-ALIGN: center; WIDTH: 50px; DISPLAY: inline-block" id=ctl00_ContentMain_grvIsoSearchResults_ctl02_txtgvRegion>99</SPAN>
</TD>
<TD><SPAN style="TEXT-ALIGN: center; WIDTH: 50px; DISPLAY: inline-block" id=ctl00_ContentMain_grvIsoSearchResults_ctl02_txtgvDivision>11111</SPAN>
</TD>
<TD><INPUT id=ctl00_ContentMain_grvIsoSearchResults_ctl02_txtgvEmailAddress class=textInput name=ctl00$ContentMain$grvIsoSearchResults$ctl02$txtgvEmailAddress value=test@test.com>
<INPUT id=ctl00_ContentMain_grvIsoSearchResults_ctl02_btnEmailUpdate onclick="return ValidateEmail(this);" name=ctl00$ContentMain$grvIsoSearchResults$ctl02$btnEmailUpdate value=Update type=submit>
</TD>
</TR>
<TR class=AlternatingRowStyle>
<TD><SPAN style="TEXT-ALIGN: center; WIDTH: 70px; DISPLAY: inline-block" id=ctl00_ContentMain_grvIsoSearchResults_ctl03_txtgvIsoNum>CB2222001 </SPAN>
</TD>
<TD><SPAN style="TEXT-ALIGN: center; WIDTH: 200px; DISPLAY: inline-block" id=ctl00_ContentMain_grvIsoSearchResults_ctl03_txtgvIsoOfficeName>DENNIS PETROVIC </SPAN>
</TD>
<TD><SPAN style="TEXT-ALIGN: center; WIDTH: 50px; DISPLAY: inline-block" id=ctl00_ContentMain_grvIsoSearchResults_ctl03_txtgvRegion></SPAN>
</TD>
<TD><SPAN style="TEXT-ALIGN: center; WIDTH: 50px; DISPLAY: inline-block" id=ctl00_ContentMain_grvIsoSearchResults_ctl03_txtgvDivision>99801</SPAN>
</TD>
<TD>
<INPUT id=ctl00_ContentMain_grvIsoSearchResults_ctl03_txtgvEmailAddress class=textInput name=ctl00$ContentMain$grvIsoSearchResults$ctl03$txtgvEmailAddress value=dennis@dlgent.com>
<INPUT id=ctl00_ContentMain_grvIsoSearchResults_ctl03_btnEmailUpdate onclick="return ValidateEmail(this);" name=ctl00$ContentMain$grvIsoSearchResults$ctl03$btnEmailUpdate value=Update type=submit>
</TD>
</TR>
<TR class=RowStyle>
<TD><SPAN style="TEXT-ALIGN: center; WIDTH: 70px; DISPLAY: inline-block" id=ctl00_ContentMain_grvIsoSearchResults_ctl04_txtgvIsoNum>FT2222001 </SPAN>
</TD>
<TD><SPAN style="TEXT-ALIGN: center; WIDTH: 200px; DISPLAY: inline-block" id=ctl00_ContentMain_grvIsoSearchResults_ctl04_txtgvIsoOfficeName>DENNIS PETROVIC </SPAN>
</TD>
<TD><SPAN style="TEXT-ALIGN: center; WIDTH: 50px; DISPLAY: inline-block" id=ctl00_ContentMain_grvIsoSearchResults_ctl04_txtgvRegion></SPAN>
</TD>
<TD><SPAN style="TEXT-ALIGN: center; WIDTH: 50px; DISPLAY: inline-block" id=ctl00_ContentMain_grvIsoSearchResults_ctl04_txtgvDivision>99801</SPAN>
</TD>
<TD><INPUT id=ctl00_ContentMain_grvIsoSearchResults_ctl04_txtgvEmailAddress class=textInput name=ctl00$ContentMain$grvIsoSearchResults$ctl04$txtgvEmailAddress value=dennis@dlgent.com>
<INPUT id=ctl00_ContentMain_grvIsoSearchResults_ctl04_btnEmailUpdate onclick="return ValidateEmail(this);" name=ctl00$ContentMain$grvIsoSearchResults$ctl04$btnEmailUpdate value=Update type=submit>
</TD>
</TR>
</TBODY>
</TABLE>
答案 0 :(得分:0)
您将功能附加到所有'input[type="text"]'
。这意味着页面上的所有输入字段都将具有此功能。您可能想查看this问题。
您的查询应如下所示:table > input[type="text"]
。 For more details
<强>更新强>
查看您的代码我不确定您的系统是否满足您的需求。无论如何,这是一个filldle,它为您提供表中包含inputText
个类的字段。然后你可以附加一个功能(只需弹出控制台 - 在Chrome F12中,你就会看到页面的选定元素)。
正如我所说,你需要按级别限制你的选择器级别:
$('td > .textInput').each(function(){
console.log(this);
})
因此,您可以从所有.textInput
代码中选择所有td
个类。如果您没有任何其他$('.textInput')
标记,这将无需td
即可使用。如果您有多个表,请使用要在选择器中使用的表的id,然后从那里下降到所需的级别。