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

时间:2017-05-17 05:00:57

标签: javascript c# asp.net

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

5 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

由于@borissh说您可以使用placeholder属性,如果您不想使用placeholder,则可以向InitialValue="Select Age"控件添加属性RequiredFieldValidator

您可以参考此here

了解更多信息

答案 2 :(得分:0)

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

尝试this解决方案

答案 3 :(得分:0)

通常, RequiredFieldValidator 会被客户端的 onChange 事件触发。但是你正试图通过 onBlur 事件实现同样的目标。 Yoy需要添加此代码段以触发 onBlur 的验证器 -

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

希望这会有所帮助。或者,请转到此link以了解详情。

答案 4 :(得分:0)

您应该在一个地方编写所有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>