使用RequiredFieldValidator的检查,如果两个文本框的至少一个里面有一些文字?(U

2019-09-18 16:25发布

我有我的asp.net页面上有两个文本框和一个提交按钮。 我如何可以使用单个或多个RequiredFieldValidators以检查两个文本框的至少一个里面有一些文字上的提交按钮点击?

Answer 1:

随着两个文本框添加的CustomValidator并调用服务器端验证。

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<br />
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="CustomValidator" OnServerValidate="CustomValidator_ServerValidate"></asp:CustomValidator>
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />

服务器端功能

public void CustomValidator_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
    {
        args.IsValid = true;

        if (TextBox1.Text == "" && TextBox2.Text == "")
        {
            CustomValidator1.ErrorMessage = "Enter value in at least one text Box";
            args.IsValid = false;

        }
    }

希望这可以帮助你。



Answer 2:

您还可以使用ClientValidationFunction属性具有的CustomValidator和客户端功能

<asp:TextBox ID="txtBoxId1" runat="server"></asp:TextBox>
<asp:TextBox ID="txtBoxId2" runat="server"></asp:TextBox>
<asp:CustomValidator ID="cvId" runat="server" ClientValidationFunction="Validators.DoWork">
error</asp:CustomValidator>

<script language="javascript">
var Validators = {
DoWork: function (source, clientside_arguments) {

    var valid_val = true;

    //get the controls values using jQuery
    var txtBoxId1= $('input:text[id*=txtBoxId1]').val();
    var txtBoxId2= $('input:text[id*=txtBoxId2]').val();

    if (your condition) {
        valid_val = false;
    }

    clientside_arguments.IsValid = valid_val;
}
}
</script>


Answer 3:

首先,如果一个字段是不是一定需要你不应该使用一个RequiredFieldValidator的 ,而不是你可以使用的CustomValidator 。

使用RequiredFieldValidator - 检查,以确保用户输入的值。

的CustomValidator - 检查表单字段的自定义反对验证逻辑,你的开发者,提供价值。

这句话是从使用的CustomValidator控制由斯科特·米切尔 。

您还可以检查此基础上的DropDownList的值动态地启用或禁用RequiredFieldValidator的 ,因为如果你应该使用RequiredFieldValidator你需要禁用这两个动态的,如果文本框的一个有效的一个。



文章来源: Using RequiredFieldValidator to check if at least one of the two textboxes has some text inside?