【问题标题】:Required Field Validator for textbox having onblur value具有 onblur 值的文本框的必需字段验证器
【发布时间】:2017-05-17 05:00:57
【问题描述】:

我有一个具有 onblur 值的文本框。应用它时,其对应的必填字段验证器不起作用。我的代码在这里

 <div align="center">
    <asp:TextBox ID="tb_age" runat="server" 
       onfocus="if (this.value == 'Select Age') this.value = '';" 
       onblur="if (this.value == '') this.value = 'Select Age';" 
       value="Select Age" >
    </asp:TextBox>                          
    <asp:RequiredFieldValidator runat="server" id="req_tb_age" 
      controltovalidate="tb_age" errormessage="*" SetFocusOnError="True" 
      Display="Dynamic" />
    <asp:Button ID="bt_show" runat="server"   text="Show"
       CausesValidation="true"  
  onclick="bt_show_data_Click" OnClientClick="Confirm()"/>
</div>

【问题讨论】:

  • 什么不起作用?

标签: javascript c# asp.net


【解决方案1】:

正如@borissh 所说,您可以使用placeholder 属性,如果您不想使用placeholder,您可以将InitialValue="Select Age" 属性添加到您的RequiredFieldValidator 控件中。

您可以通过here了解更多信息

【讨论】:

    【解决方案2】:

    不要使用您的 onfocus/onblur 事件,而是使用 TextBox 的 placeholder="Select Age" 属性。

    【讨论】:

      【解决方案3】:

      可能的问题是代码循环遍历所有验证器,但没有同时比较引用相同控件的验证器。

      尝试this解决方案

      【讨论】:

        【解决方案4】:

        通常,RequiredFieldValidator 由客户端的 onChange 事件触发。但是您正试图通过 onBlur 事件来达到同样的效果。 Yoy 需要添加这个 sn-p 来触发 onBlur 的验证器,而不是-

        void Page_Load(object sender, EventArgs e)
        {
            txtSummary.Attributes.Add("onblur", "ValidatorValidate(" + reqvalSummary.ClientID + ")");
        }
        

        希望这会有所帮助。或者,访问link 了解更多信息。

        【讨论】:

          【解决方案5】:

          您应该将所有 JS 代码写在一个地方,而不是编写内联 JS。外部文件是管理代码的最佳方式,尽管您可以在同一页面上编写特定于文件的 JS。

          <asp:TextBox ID="tb_age" runat="server" 
                 onfocus="Validate(this)" 
                 onblur="Validate(this)" 
                 value="" >
           </asp:TextBox>
          
          <script type="text/javascript">
             function Validate(elem)
             {
               if (elem.value == '') 
               {
                 elem.value = 'Select Age';
               }
             }
          </script>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-02-20
            • 1970-01-01
            • 2017-01-08
            • 1970-01-01
            • 1970-01-01
            • 2013-08-14
            • 1970-01-01
            相关资源
            最近更新 更多