繁体   English   中英

具有onblur值的文本框的必需字段验证器

[英]Required Field Validator for textbox having onblur value

我有一个具有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>

代替使用onfocus / onblur事件,对TextBox使用placeholder="Select Age"属性。

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

你可以在这里学习更多

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

试试这个解决方案

通常, RequiredFieldValidator由客户端的onChange事件触发。 但是您正在尝试通过onBlur事件实现相同的目的。 Yoy需要添加此代码段来触发onBlur的验证器,

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

希望这可以帮助。 或者,转到此链接以了解更多信息。

而不是编写内联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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM