我目前在页面上有3个文本框控件。
我还有每个文本框的必需valdiator。但是,如果其他两个文本框中的任何一个文本中都有文本,我只希望触发文本框的验证器。如果所有3个文本框都为空,则不应触发验证器。
我有什么方法可以在javascript / jquery中这样做,因为我希望用户能够获得最佳体验。
非常感谢任何帮助。
提前致谢。
答案 0 :(得分:1)
如果您正在使用WebForms,我会在每种文本框中使用自定义验证器(尽管只能使用一个):
<asp:CustomValidator id="cvalTextBox1" runat="server" Display="*"
ErrorMessage="Required: TextBox1"
ClientValidationFunction="ValidateRequiredTextBox1" ValidateEmptyText="true"
ControlToValidate="txtTextBox1"></asp:CustomValidator>
然后实现你的javascript(使用jQuery):
<script>
function ValidateRequiredTextBox1(source, arguments)
{
if ((jQuery.trim($("#<%= txtTextBox1.ClientID %>").val()) == "") &&
((jQuery.trim($("#<%= txtTextBox2.ClientID %>").val()) != "") ||
(jQuery.trim($("#<%= txtTextBox3.ClientID %>").val()) != "")))
{
arguments.IsValid = false;
}
else
{
arguments.IsValid = true;
}
}
</script>
因此,这适用于1个文本框(假设您希望每个框的1个验证器显示*或其他内容)。您将需要3个函数来实现所有3个文本框,或者您只需对所有人使用一个验证器,并对上述javascript进行微调。
答案 1 :(得分:0)
对于客户端验证,请查看此插件:http://plugins.jquery.com/project/validate
这将允许您编写自己的验证方法。