:master: Naturalmente non mi sono spiegato proprio per niente
e mi dispiace. La questione è: vuoi aiuto per javascript o no? se sì, fai finta che nessuno conosca c#, asp.net, php e altro linguaggio server. Ti guardi l'html prodotto dal browser e, per esempio, se hai due TextBox del genere (conosciuti da nessuno):
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
ti riferisci nella domanda ai due elementi html prodotti (conosciuti da tutti)
<input name="TextBox1" type="text" id="TextBox1" />
<input name="TextBox2" type="text" id="TextBox2" />
dopo di che, lasciando perdere tutte le terminologie server, ti concentri nella domanda:
ad esempio
vorrei fare un controllo in modo tale che il controllo sia valido se i due input non siano vuoti contemporaneamente
oppure, il controllo è valido se uno solo dei due input sia riempito
Dopo di che, l'eventuale codice javascript suggerito va adattato e assiemato da te nel contesto del tuo problema specifico.
Solo a titolo di esempio, suppongo di avere due elementi input. Quando faccio l'invio, vorrei che il controllo di validità sia positivo se uno solo dei due elementi sia riempito, ossia:
tutte e due vuoti --> falso
tutte e due pieni --> falso
uno o l'altro riempiti --> vero
in questo caso, la paginetta di esempio ultrasemplificata è:
codice:
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs)
Dim a As Boolean = Me.TextBox1.Text.Trim = String.Empty
Dim b As Boolean = Me.TextBox2.Text.Trim = String.Empty
args.IsValid = a Xor b
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Me.Validate()
If Me.IsValid Then
'PrintLn("lancio procedura perchè i validatori sono positivi")
Else
'PrintLn("Non lancio procedura perchè i validatori sono negativi")
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Pagina senza titolo</title>
<script language="javascript" type="text/javascript">
// <!CDATA[
function controlla_emissione_documento(source, arguments)
{
var a = trim($("TextBox1").value) == "";
var b = trim($("TextBox2").value) == "";
arguments.IsValid = (a ^ b);
}
//-------------------------------------------------------------------
// rimuove gli spazi iniziali e finali da strValore
//-------------------------------------------------------------------
function trim(stringa)
{
stringa = stringa + "";
return stringa.replace(/^ */,"").replace(/ *$/,"");
}
function $(id_element)
{
return document.getElementById(id_element);
}
// ]]>
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Non è possibile che il documento sia stato emesso all'estero e nello stesso tempo anche in italia!" ClientValidationFunction="controlla_emissione_documento" OnServerValidate="CustomValidator1_ServerValidate"></asp:CustomValidator>
</div>
</form>
</body>
</html>
dove naturalmente ci concentriamo sulla parte client, ossia il codice tra <script language="javascript" type="text/javascript"> e </script>