首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用javascript asp.net在同一行网格视图中选中复选框时验证网格视图中的textbox

如何使用javascript asp.net在同一行网格视图中选中复选框时验证网格视图中的textbox
EN

Stack Overflow用户
提问于 2015-12-18 06:38:57
回答 1查看 2.2K关注 0票数 2

我在aspx页面中有一个网格视图,如

代码语言:javascript
运行
复制
 <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>

我的custom validator看起来就像

代码语言:javascript
运行
复制
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Please enter value"
    ClientValidationFunction="Validate" ForeColor="Red"></asp:CustomValidator> 

当选中textbox中的checkbox而用户将textbox保留为空时,需要在gridview中验证gridview中的textbox

如果用户从网格视图的第1行选中复选框,并将textbox保留在第1行,等等。然后自定义验证程序通知输入值,

为此,我昨天从谷歌那里获得了javascript,并对其进行了操作,但它什么也不做,这里是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的这一部分。

代码语言:javascript
运行
复制
if (fields[i].type == "text" && fields[i].value.length < 1)
                     {

                         args.IsValid = false;
                         return;

                       }

这是需要在客户端使用javascript来完成的,所以我需要你的帮助来摆脱它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-07 11:24:13

我知道这是晚一点,但任何人都可以从以下功能得到帮助.

我有关于你逻辑的例子。你可以在客户端这样做..。下面的代码并不完全是您的需求,但是您可以根据您的需求来操作它。

代码语言: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>

按钮,您可以调用上面的函数。

代码语言:javascript
运行
复制
<asp:Button ID="btnCalculate"  runat="server"OnClientClick="if(!validate()) { return false;}" OnClick="btnCalculate_Click"  Text="Calculate" ValidationGroup="Update"/>

如果您需要任何一种查询来理解,那么请随时询问。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34349808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档