首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RequiredFieldValidator和样式

RequiredFieldValidator和样式
EN

Stack Overflow用户
提问于 2010-01-15 18:54:25
回答 2查看 2.4K关注 0票数 0

有没有可能使用标准的.Net字段验证器来更改发生错误的文本字段上的样式?

例如,如果我有一个需要填写的字段phonenumber,它应该在提交时在文本字段周围创建一个红色边框,如果该字段没有填充的话。

希望这可以用标准控件来完成,这样我就不需要使用例如jQuery验证插件等来重新编码了。

-Dofs

EN

回答 2

Stack Overflow用户

发布于 2013-01-21 21:52:30

您可以使用来自ASP.Net的本机组件来完成此操作:

在ASP页面中:

代码语言:javascript
复制
<asp:TextBox ID="TextBox1" runat="server"/>

<asp:CustomValidator ID="CustomValidator1" runat="server" OnServerValidate="ValidateTextBox1"   ForeColor="Red" SetFocusOnError="true"></asp:CustomValidator>

在后面的代码中:

代码语言:javascript
复制
    protected void ValidateTextBox1(object source, ServerValidateEventArgs args) 
            {
                if (TextBox1.Text == string.Empty)
                {
                    args.IsValid = false;
                    TextBox1.Style.Add("border", "solid 1px red");
                    CustomValidator1.Text = "required";
                }
                else
                    args.IsValid = true;

            }

PS:按下按钮时,RequiredFieldValidator在CustomValidator之前激活。如果在同一页上有,则必须将其关闭或替换为CustomValidator。

你可以使用CSS和Javascript。

CSS类:

代码语言:javascript
复制
<style type="text/css">
    body
    {
        font-family:Arial;
        font-size:10pt;
    }
    .ErrorControl
    {
        background-color: #FBE3E4;
        border: solid 1px Red;
    }
</style>

JavaScript函数:

代码语言:javascript
复制
<script type="text/javascript">
function WebForm_OnSubmit() {
 if (typeof (ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) {
    for (var i in Page_Validators) {
        try {
            var control = document.getElementById(Page_Validators[i].controltovalidate);
            if (!Page_Validators[i].isvalid) {
                control.className = "ErrorControl";
            } else {
                control.className = "";
            }
        } catch (e) { }
    }
    return false;
 }
 return true;
}
</script>

现在,验证器ASP.net:

代码语言:javascript
复制
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="TextBox1"
    runat="server" ErrorMessage="Required"></asp:RequiredFieldValidator>

代码语言:javascript
复制
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Required"
    ControlToValidate="TextBox2" ValidateEmptyText="true" ClientValidationFunction="Validate"></asp:CustomValidator>
<script type="text/javascript">
    function Validate(sender, args) {
        if (document.getElementById(sender.controltovalidate).value != "") {
            args.IsValid = true;
        } else {
            args.IsValid = false;
        }
    }
</script>
票数 1
EN

Stack Overflow用户

发布于 2010-01-15 19:02:15

您可以使用ajax工具包完成此操作,正如Lance Zhang on this page所解释的那样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2070935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档