Если вы используете 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.