【问题标题】:Client side validation for Textbox inside Gridview control Using Javascript Or Jquery使用Javascript或Jquery对Gridview控件内的文本框进行客户端验证
【发布时间】:2016-12-02 05:36:51
【问题描述】:

我正在开发 asp.net 应用程序,因为我有一个页面包含带有文本框的 gridview, 因为我需要验证以填充该网格视图中的至少一个文本框。

我用谷歌搜索了很多页面,但我发现只有复选框验证,如 this, 单击保存按钮时,我需要验证以填充该网格视图中的存款金额中的至少一个文本框..

任何答案将不胜感激..

【问题讨论】:

    标签: javascript c# asp.net validation gridview


    【解决方案1】:
    Use RequiredFieldValidator
    
    
            <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="txtAmount" ErrorMessage="Fill This"></asp:RequiredFieldValidator>
    

    【讨论】:

    • 嗨 Jackson V Jose,上面的代码将运行所有文本框,如果我只在一个文本框中输入值意味着它不能接受,它要求在所有文本框中填写值,我需要什么是当我只填写一个文本框时意味着它是可以接受的,如果我不填写任何文本框意味着它应该显示消息“请输入至少一个文本框”..
    • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您正在为将来的读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要用解释性的 cmets 挤满你的代码,这会降低代码和解释的可读性!
    【解决方案2】:
    <script type="text/javascript">
        function validateTextBox() {
            //get target base & child control.
            var TargetBaseControl = document.getElementById('<%=this.Gridview1.ClientID%>');
            var TargetChildControl1 = "txtDepositAmount";
    
            //get all the control of the type INPUT in the base control.
            var Inputs = TargetBaseControl.getElementsByTagName("input");
    
            for (var n = 0; n < Inputs.length; ++n)
                if (Inputs[n].type == 'text' && Inputs[n].id.indexOf(TargetChildControl1, 0) >= 0)
                    if (Inputs[n].value != "") return true;
    
            alert('Enter Atleast One Deposit Amount!');
            return false;
        }
    </script>
    
    
    
    <asp:ImageButton ID="btnSave" runat="server" ValidationGroup="valInsert" ImageUrl="~/images/save6.png"
                                                    Width="40px" Height="40px" OnClientClick="javascript:return validateTextBox();" OnClick="btnSave_Click" ToolTip="Save" />
    

    【讨论】:

      【解决方案3】:

      您可以使用CustomValidator 和 jQuery 来检查至少一个 TextBox 中是否有文本。

      <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="At least one TextBox is required" ClientValidationFunction="validateMyTextBoxes"></asp:CustomValidator>
      
      <script type="text/javascript">
          function validateMyTextBoxes(oSrc, args) {
              var isValid = false;
              $("#<%= GridView1.ClientID %> input[type=text]").each(function () {
                  if ($(this).val() != "") {
                      isValid = true;
                  }
              })
              args.IsValid = isValid;
          }
      </script>
      

      【讨论】:

      • 你没有。一旦点击页面上的按钮,CustomValidator 就会触发。您不必手动调用它。
      • 是的,请检查您的控制台是否有 javascript 错误。它将显示ErrorMessage
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多