【问题标题】:How to validate textbox in gridview when checkbox is checked in same row of gridview using javascript asp.net使用javascript asp.net在gridview的同一行中选中复选框时如何验证gridview中的文本框
【发布时间】:2015-12-18 06:38:57
【问题描述】:

我的 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>

我的custom validator 看起来像

<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Please enter value"
    ClientValidationFunction="Validate" ForeColor="Red"></asp:CustomValidator> 

我需要验证textbox 987654325 checkbox 987654327 @ gridview textbox

例如,如果用户从 gridview 的第 1 行选中复选框,并且在第 1 行也将文本框留空,依此类推.. 然后自定义验证器通知输入值,

为此,我昨天从 google 获得了 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>

我通过脚本里面的alerts检查,无法进入javascript的这一部分

if (fields[i].type == "text" && fields[i].value.length < 1)
                     {

                         args.IsValid = false;
                         return;

                       }

需要在客户端使用javascript 执行此操作,所以我需要您的帮助才能摆脱它

【问题讨论】:

  • 如果您只想检查用户是否输入了任何内容,为什么要使用 CustomValidator 为什么不使用 _RequiredFieldValidator
  • 我可以选择让用户从 gridview 中检查 1 、 2 或什么都不检查...所以如果他检查,那么他也必须在文本框中输入记录
  • 好的,但是当您想真正验证用户是否在文本框中输入了任何内容时,您有任何按钮控件或其他东西吗?
  • 是的,我有保存按钮。
  • @RahulSingh,我有一个脱离 gridview 控件的按钮,它从 gridview 获取数据并将数据发送到数据库。

标签: javascript c# asp.net gridview javascript-objects


【解决方案1】:

我知道这是迟到了,但任何人都可以从以下功能中获得帮助....

我有与您的逻辑相关的示例。您可以在客户端执行此操作... 以下代码不完全是您的要求,但您可以根据您的要求对其进行操作。

<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"/>

如果您需要任何类型的查询来理解,请随时询问

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多