我的asp.net页面上有两个文本框和一个提交按钮。如何使用一个或多个RequiredFieldValidators来检查两个文本框中是否有一个文本框中的提交按钮单击中是否有一些文本?
答案 0 :(得分:5)
与两个文本框一起添加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;
}
}
希望这会对你有所帮助。
答案 1 :(得分: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>
答案 2 :(得分:0)
首先,如果当然不需要字段,则不应使用RequiredFieldValidator,而是可以使用CustomValidator。
RequiredFieldValidator - 检查以确保用户输入了值。
CustomValidator - 根据自定义检查表单字段的值 您,开发人员提供的验证逻辑。
此引用来自Using the CustomValidator Control By Scott Mitchell。
您还可以检查此Dynamically enable or disable RequiredFieldValidator based on value of DropDownList,因为如果您应该使用RequiredFieldValidator,则需要在其中一个TextBox有效时动态禁用其中一个。