2017-05-17 68 views
0

我有一个具有onblur值的文本框。应用时,其相应的必填字段验证程序不起作用。我的代码是在这里具有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> 
+0

什么不起作用? –

回答

2

正如@borissh说,你可以使用placeholder属性,如果你不想使用placeholder您可以添加属性InitialValue="Select Age"RequiredFieldValidator控制。

您可以在此处学习更多here

0

可能出现的问题是,代码遍历所有的验证,但不比较,在一次引用同一控制人。

尝试this解决方案

0

一般来说,的RequiredFieldValidator得到通过在客户端的的onChange事件触发。但是你试图通过onBlur事件实现相同。同比需要增加这个片段触发验证为的onblur Instead-

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

希望这有助于。或者,请转到此link以了解更多信息。

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> 
2

而不是使用您的onfocus /的onblur事件的使用placeholder="Select Age"属性为文本框。