【问题标题】:Required Field Validator for textbox having onblur value具有 onblur 值的文本框的必需字段验证器
【发布时间】:2017-05-17 05:00:57
【问题描述】:
我有一个具有 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>
【问题讨论】:
标签:
javascript
c#
asp.net
【解决方案1】:
正如@borissh 所说,您可以使用placeholder 属性,如果您不想使用placeholder,您可以将InitialValue="Select Age" 属性添加到您的RequiredFieldValidator 控件中。
您可以通过here了解更多信息
【解决方案2】:
不要使用您的 onfocus/onblur 事件,而是使用 TextBox 的 placeholder="Select Age" 属性。
【解决方案3】:
可能的问题是代码循环遍历所有验证器,但没有同时比较引用相同控件的验证器。
尝试this解决方案
【解决方案4】:
通常,RequiredFieldValidator 由客户端的 onChange 事件触发。但是您正试图通过 onBlur 事件来达到同样的效果。 Yoy 需要添加这个 sn-p 来触发 onBlur 的验证器,而不是-
void Page_Load(object sender, EventArgs e)
{
txtSummary.Attributes.Add("onblur", "ValidatorValidate(" + reqvalSummary.ClientID + ")");
}
希望这会有所帮助。或者,访问link 了解更多信息。
【解决方案5】:
您应该将所有 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>