TextBox自定义Web控件和JavaScript客户端验证

TextBox Custom Web Control and JavaScript Client Validation

本文关键字:JavaScript 客户端 验证 控件 自定义 Web TextBox      更新时间:2023-09-26

我已经创建了自定义的web控件文本框,它运行良好,代码如下:

public class ReqTextBox : TextBox
{
    private RequiredFieldValidator req;
    public string ErrMsg { get; set; }
    protected override void OnInit(EventArgs e)
    {
        this.CssClass = "inp-form";
        req = new RequiredFieldValidator();
        req.ControlToValidate = this.ID;
        req.ErrorMessage = string.IsNullOrEmpty(this.ErrMsg) ? "*" : this.ErrMsg;
        req.Display = ValidatorDisplay.Dynamic;
        //req.EnableClientScript = true;
        if (!string.IsNullOrEmpty(this.ValidationGroup))
            req.ValidationGroup = this.ValidationGroup;
        Controls.Add(req);
        //base.OnInit(e);
    }
    protected override void Render(HtmlTextWriter w)
    {
        base.Render(w);
        req.RenderControl(w);
    }
}

这与以下代码配合良好:

    <Mas:ReqTextBox runat="server" ID="txtCustBankCode" Width="236px" ValidationGroup="vmas" ErrMsg="Enter BankName"></Mas:ReqTextBox>
<asp:ImageButton runat="server" ID="ibtnUpdate" OnClick="ibtnUpdate_Click" ToolTip="Update" AlternateText="Update" ImageUrl="../Resources/Images/Update2.gif" ValidationGroup="vmas" />

在这里它工作得很好。现在,若我在按钮上添加onclientclick事件,它将不会检查文本框是否为空。Valid()函数中的return true和false都不起作用。

<asp:ImageButton runat="server" ID="ibtnUpdate" OnClick="ibtnUpdate_Click" ToolTip="Update" AlternateText="Update" onClientClick="return Valid();" ImageUrl="../Resources/Images/Update2.gif" ValidationGroup="vmas" />

我错过了什么。。。?

req.EnableclientScript = true/false;

对我没有帮助。需要帮助。谢谢

EDIT:我需要使用这个Customcontrol,这样用户就需要输入一些数据,对于那些输入的数据,我需要用javascript函数进行验证。抱歉EDIt迟到了。

使用带有自定义客户端验证功能的自定义验证器:

    <script type="text/javascript">
        function ClientValidate(source, arguments) {
            if (arguments.Value === "foo") {
                arguments.IsValid = true;
            } else {
                arguments.IsValid = false;
            }
        }
    </script>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:CustomValidator ID="CustomValidator1" runat="server" 
          ErrorMessage="Invalid entry" ControlToValidate="TextBox1"
          ClientValidationFunction="ClientValidate"></asp:CustomValidator>
    <asp:Button ID="Button1" runat="server" Text="Button" />

从这里阅读更多信息。