2017-05-17 98 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"屬性爲文本框。