我目前正在使用c#学习ASP.NET 4.0。我花了大约2个小时来研究这个问题,而且我现在对于如何将它应用到我自己的情况有足够的了解,所以我需要一对一的帮助。此外,我的错误很可能是非常业余的,所以请不要害怕探索这种可能性。最后,感谢您的意见
我已经制作了一个非常基本的表单,只需要对所有字段进行验证即可为多个字段(名称,电子邮件,确认电子邮件,家庭电话,商务电话等)输入文本。我的所有验证工作除外我似乎无法弄清楚为什么我的客户端javascript自定义验证(这只是家庭电话领域或商务电话领域有输入的要求)没有做任何事情。服务器端验证工作正常(如果我将所有其他字段都正确发布到服务器,我会得到所需的结果,但如果一个或多个其他字段无效,则自定义验证不会执行任何操作。)
我会尝试发布排除故障所需的所有相关代码: 如果文本框中有文本
,我的javascript设置验证是否有效<script type="text/javascript">
function ValidatePhoneNumbers(source, args)
{
var phoneHome = document.getElementById('<%= PhoneHome.ClientID %>');
var phoneBusiness = document.getElementById('<%= PhoneBusiness.ClientID %>');
if (phoneHome.value != '' || phoneBusiness != '')
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}
</script>
这是我的自定义验证标记:
<asp:CustomValidator ID="CustomValidator1" runat="server"
ClientValidationFunction="ValidatePhoneNumbers" CssClass="ErrorMessage"
Display="Dynamic" ErrorMessage="Enter Your home or business phone number"
onservervalidate="CustomValidator1_ServerValidate">*</asp:CustomValidator>
最后这些是我的两个文本框:
<asp:TextBox ID="PhoneHome" runat="server"></asp:TextBox>
<asp:TextBox ID="PhoneBusiness" runat="server"></asp:TextBox>
答案 0 :(得分:1)
您的Javascript函数中存在一个小错误,导致验证始终成功:
if (phoneHome.value != '' || phoneBusiness != '')
应替换为:
if (phoneHome.value != '' || phoneBusiness.value != '')