我有三个文本框,我想验证它们。至少有一个文本框必须包含数据。asp.net验证文本框 - 至少一个文本框必须有数据
我该怎么做?
(文本框是家庭电话,工作电话号码,手机号码和我需要检查的至少一个指定的联系方法)
我有三个文本框,我想验证它们。至少有一个文本框必须包含数据。asp.net验证文本框 - 至少一个文本框必须有数据
我该怎么做?
(文本框是家庭电话,工作电话号码,手机号码和我需要检查的至少一个指定的联系方法)
使用自定义验证器,不需要循环页面上的文本框,因为此方法获取页面上的所有文本框。在ClientValidationFunction
中指定的JavaScript函数将为每个带有与其关联的验证程序的文本框调用。
<asp:TextBox ID="txtHomePhone" runat="server"></asp:TextBox>
<asp:CustomValidator ID="cvHomePhone" runat="server" ErrorMessage="*" ClientValidationFunction="Validate" ControlToValidate="txtHomePhone" ValidateEmptyText="true"></asp:CustomValidator>
<asp:TextBox ID="txtWorkPhone" runat="server"></asp:TextBox>
<asp:CustomValidator ID="cvWorkPhone" runat="server" ErrorMessage="*" ClientValidationFunction="Validate" ControlToValidate="txtWorkPhone" ValidateEmptyText="true"></asp:CustomValidator>
<asp:TextBox ID="txtMobilePhone" runat="server"></asp:TextBox>
<asp:CustomValidator ID="cvMobilePhone" runat="server" ErrorMessage="*" ClientValidationFunction="Validate" ControlToValidate="txtMobilePhone" ValidateEmptyText="true"></asp:CustomValidator>
<script language="javascript">
function Validate(sender, args)
{
args.IsValid = false;
if(args.Value != "")
{
args.IsValid = true;
}
}
</script>
使用自定义的验证,与ClientValidationFunction属性此功能。
function validate(source, arguments) {
var textboxes = document.getElementsByTagName("INPUT");
for (var i = 0; i < textboxes.length; i++) {
if (textboxes[i].type == "text" && textboxes[i].value != "") {
arguments.IsValid = true;
return;
}
}
arguments.IsValid = false;
}
回头看这个问题这个答案也是有效的。 +1 – 2015-01-14 16:44:41
<script language="javascript">
function Validate(sender, args){
args.IsValid = false;
if(args.Value != "")
{
args.IsValid = true;
}}</script>
上述功能不验证的至少一个文本框包含数据它验证附接到验证控制有数据。只需使用一个这样的自定义验证程序
<asp:TextBox ID="txtHomePhone" runat="server"></asp:TextBox>
<asp:TextBox ID="txtWorkPhone" runat="server"></asp:TextBox>
<asp:TextBox ID="txtMobilePhone" runat="server"></asp:TextBox>
<asp:CustomValidator ID="cvMobilePhone" runat="server" ErrorMessage="ADASDASDA" ClientValidationFunction="Validate"
ValidateEmptyText="true"></asp:CustomValidator>
<script language="JavaScript">
function Validate(sender, args) {
var txt1 = document.getElementById("<%= txtHomePhone.ClientID %>");
var txt2 = document.getElementById("<%= txtWorkPhone.ClientID%>");
var txt3 = document.getElementById("<%= txtMobilePhone.ClientID%>");
args.IsValid = (txt1.value != "") || (txt2.value != "") || (txt3.value != "");
}
</script>
如果您想重用此功能,您可以将属性添加到您的验证对象。 查看:http://alejandrobog.wordpress.com/2009/09/27/pass-your-own-arguments-to-the-clientvalidationfunction-in-a-customvalidator/
这并不能验证是否有一个文本框已被填写。Alejandro Bonilla的答案更准确 – Paul 2010-09-22 12:59:33