我目前在我的页面上有3个文本框控件。asp.net多文本框验证
我也有每个文本框所需的valdiator。但是,如果其他两个文本框中都有文本,我只想让文本框的验证器触发。如果所有3个文本框都为空,则不应触发验证程序。
有没有什么办法可以在javascript/jquery中做到这一点,因为我希望用户获得尽可能最好的体验。
任何帮助将不胜感激。
在此先感谢。
我目前在我的页面上有3个文本框控件。asp.net多文本框验证
我也有每个文本框所需的valdiator。但是,如果其他两个文本框中都有文本,我只想让文本框的验证器触发。如果所有3个文本框都为空,则不应触发验证程序。
有没有什么办法可以在javascript/jquery中做到这一点,因为我希望用户获得尽可能最好的体验。
任何帮助将不胜感激。
在此先感谢。
如果您使用的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进行微小的调整。
对于客户端验证,看看这个插件:http://plugins.jquery.com/project/validate
这将允许你写自己的验证方法。
谢谢,我用了一些小修改。它工作得很好。 – 2010-04-28 08:14:53