我的 aspx 页面中有 gridview 作为
<asp:GridView ID="Grid_FeeCategory" Width="100%" CssClass="table table-striped responsive-utilities jambo_table" runat="server" AutoGenerateColumns="False">
<HeaderStyle CssClass="headings" />
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="checkAll" runat="server" onclick = "checkAll(this);" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkRow" runat="server" onclick = "Check_Click(this)"/>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="CatName" HeaderText="Category" />
<asp:TemplateField HeaderText="Category Fee" HeaderStyle-Width="125px">
<ItemTemplate>
<asp:TextBox ID="txtCatFee" runat="server" placeholder="Int or Decimal" style="width:100%" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="FeeCatID" HeaderText="Category ID" HeaderStyle-CssClass="hidden-field" ItemStyle-CssClass="hidden-field"/>
</Columns>
</asp:GridView>
我的自定义验证器
看起来像
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Please enter value"
ClientValidationFunction="Validate" ForeColor="Red"></asp:CustomValidator>
当选中gridview
中的checkbox
并且用户离开时,我需要验证
空gridview
中的textbox
>文本框
例如,如果用户选中 gridview 第 1 行中的复选框,并将第 1 行中的文本框留空,依此类推。然后自定义验证器通知输入值,
为此,我昨天从谷歌获得了 javascript 并对其进行了操作,但它什么也没做,这里是 javascript
<script type="text/javascript">
function Validate(sender, args) {
var gridView = document.getElementById("<%=Grid_FeeCategory.ClientID %>");
var fields= gridView.getElementsByTagName("input");
for (var i = 0; i < fields.length; i++)
{
if (fields[i].type == "fields" && fields[i].checked)
{
if (fields[i].type == "text" && fields[i].value.length < 1)
{
args.IsValid = false;
return;
}
}
}
args.IsValid = true;
}
</script>
我通过使用脚本内的警报进行检查,它无法进入javascript
的此部分
if (fields[i].type == "text" && fields[i].value.length < 1)
{
args.IsValid = false;
return;
}
需要在客户端使用 javascript
执行此操作,因此我需要您的帮助才能摆脱它
最佳答案
我知道这已经晚了,但任何人都可以从以下功能中获得帮助....
我有与你的逻辑相关的例子。你可以在客户端执行此操作... 以下代码并不完全符合您的要求,但您可以根据您的要求对其进行操作。
<script type="text/javascript">
function validate() {
var flag = false;
var gridView = document.getElementById('<%= Grid_FeeCategory.ClientID %>');
for (var i = 1; i < gridView.rows.length; i++) {
var inputs = gridView.rows[i].getElementsByTagName('input');
if (inputs != null && inputs.length > 1 && inputs[0] != null) {
if (inputs[1].type == "text" && inputs[0].type == "checkbox") {
var txtval = inputs[1].value;
if (inputs[0].checked && (txtval == "" || txtval == null)) {
flag = false;
break;
}
else {
flag = true
}
}
}
}
if (!flag) {
new PNotify({
title: 'Error',
text: 'Please provide values for "CHECKED" fee categories....!',
type: 'error',
hide: true
});
}
return flag;
}
</script>
以及可以调用上述函数的按钮
<asp:Button ID="btnCalculate" runat="server"OnClientClick="if(!validate()) { return false;}" OnClick="btnCalculate_Click" Text="Calculate" ValidationGroup="Update"/>
如果您需要任何类型的查询来了解,请随时询问
关于javascript - 使用 javascript asp.net 在 gridview 的同一行中选中复选框时如何验证 gridview 中的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34349808/