我有一个具有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)
不使用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>