我有三個文本框,我想驗證它們。至少有一個文本框必須包含數據。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