出错时在文本框上显示红色边框

时间:2016-02-06 17:50:42

标签: asp.net vb.net

我试图通过更改文本框边框的颜色来显示错误。我发现了很多关于如何做的帖子,但是我从未对'Validators'做过任何事情,所以我很困惑从哪里开始,或者把代码放在哪里。

类似帖子:

Post One

Post Two

我的主要问题是,我在哪里放置JS代码?其次,我该如何调用代码?

当前代码

 If TicketNumber.Text = String.Empty = True Then
        NotificationLabel.Text = "Ticket Number must be filled out"
        Exit Sub
    End If

1 个答案:

答案 0 :(得分:1)

RequiredFieldValidator可以通过解释herehere的一些技巧来实现。另一种方法是使用CustomValidator,如下所示。

aspx标记

<asp:TextBox runat="server" ID="tbText" />
<asp:CustomValidator ID="cvCustom" ErrorMessage="Ticket Number must be filled out" 
    ControlToValidate="tbText" runat="server" OnServerValidate="ValidateInput"
     ClientValidationFunction="ValidateInput" ValidateEmptyText="True" />
<asp:Button Text="My Button" runat="server" />

<强>的Javascript

 <script type="text/javascript">
    function ValidateInput(sender, args) {
        if (args.Value == '') {
            args.IsValid = false;
            document.getElementById('<%= tbText.ClientID %>').style.borderColor = "red";
            return false;
        }
        return true;
    }
</script>

代码背后(C#)

protected void ValidateInput(object source, ServerValidateEventArgs args)
{
    if(string.IsNullOrWhiteSpace(args.Value))
    {
        args.IsValid = false;
        tbText.Style["border-color"] = "red";
    }
    else
    {
        args.IsValid = true;
    }   
}