我在转发器中有一些字段,我需要验证它们。
这是场景: 当页面加载时,我只得到一组字段(名字,姓氏等),我得到一个链接“添加另一个用户”,如果你点击链接它会再次添加相同的字段底部。
现在是代码部分:
在我的情况下,我需要运行转发器 4 次(因此这些字段从一开始就在页面上 4 次)。然后我隐藏它们,因为我隐藏<div>
包含它们的内容。单击按钮时,我会显示第一个隐藏的 div,依此类推。
一些代码(不是全部):
<asp:Repeater ID="rptOtherPeople" runat="server">
<HeaderTemplate>
<table>
<thead>
<tr>
<td>
<h3>Други лица</h3>
</td>
</tr>
</thead>
<tbody class="GridBody">
</HeaderTemplate>
<ItemTemplate>
<tr class="GridRow" id="personRow" style="display: none">
<td>
<asp:TextBox ID="txtFirstName" CssClass="mid-inp" Text="" runat="server"></asp:TextBox>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</tbody>
</table>
</FooterTemplate>
</asp:Repeater>
这是显示下一行的javascript:
$(document).ready(function () {
var peopleNum = 1;
if ($(".GridBody tr").length > 0) {
var tr = $(".GridBody tr")[0];
tr.style.display = 'table-row';
tr.setAttribute('hidden', 'false');
var anc = tr.getElementsByTagName('a');
}
if ($(".GridBody tr").length > 0 && peopleNum > 0) {
for (i = 0; i < peopleNum; i++) {
var tr = $(".GridBody tr")[i];
tr.style.display = 'table-row';
tr.setAttribute('hidden', 'false');
if (i > 0) {
var anc = tr.getElementsByTagName('a');
if (anc[i] != undefined)
anc[i].style.display = 'none';
}
}
}
})
function addPerson() {
var body = $(".GridBody");
var indexOfNextRow = $('tr[class="GridRow"][hidden="false"]').length;
var tr = $(".GridBody tr")[indexOfNextRow];
tr.style.display = 'table-row';
tr.setAttribute('hidden', 'false');
}
问题:例如,我希望该字段是必需的。我放置了一个RequiredFieldValidator,并在某些情况下禁用它并在其他情况下启用它。问题是我在页面上获得了 4 个RequiredFieldValidators,我只能一次打开或关闭所有这些。我只想激活其中一个。我找不到这样做的方法,因为它们几乎相同。有任何想法吗?
我假设我无法在后面的代码中解决这个问题。我可以通过javascript只使用一个RequiredFieldValidator吗(如何识别我想要的那个)。有些人更喜欢 jquery 验证。它是否适用于这种情况以及如何(我以前从未使用过 jquery 验证)?
编辑 1
好的,控件并不相同。在浏览器中生成的 ID 是:ctl00_SPWebPartManager1_g_f6926ea5_98ba_46c1_b157_4f1ddc46885d_ctl00_Step21_otherPeople_rptOtherPeople_ctl01_rv1
,但我无法在我的 Javascript 中从这里访问验证器