Tengo dos cuadros de texto en una página web de asp.net; se debe completar uno o ambos. Ambos no se pueden dejar en blanco. ¿Cómo creo un validador para hacer esto en asp.net?Se requieren dos cuadros de texto, uno o ambos
Respuesta
Necesitaría un CustomValidator para lograr eso.
Aquí hay algunos códigos que demuestran el uso básico. El texto del validador personalizado se mostrará después de invocar a IsValid en la devolución de llamada de envío y se mostrará un texto de la llamada Response.Write.
ASPX Código
<asp:TextBox runat="server" ID="tb1" />
<asp:TextBox runat="server" ID="tb2" />
<asp:CustomValidator id="CustomValidator1" runat="server"
OnServerValidate="TextValidate"
Display="Dynamic"
ErrorMessage="One of the text boxes must have valid input.">
</asp:CustomValidator>
<asp:Button runat="server" ID="uxSubmit" Text="Submit" />
Detrás
protected void Page_Load(object sender, EventArgs e)
{
uxSubmit.Click += new EventHandler(uxSubmit_Click);
}
void uxSubmit_Click(object sender, EventArgs e)
{
Response.Write("Page is " + (Page.IsValid ? "" : "NOT ") + "Valid");
}
protected void TextValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = (tb1.Text.Length > 0 || tb2.Text.Length > 0);
}
Pruebe CustomValidator.
Tendrá que crear un método que realiza lo siguiente para controlar el evento ServerValidate:
void ServerValidation (object source, ServerValidateEventArgs args)
{
args.IsValid = TextBox1.Text.Length > 0 || TextBox2.Text.Length > 0;
}
Además de crear validación del lado del servidor, puede utilizar la propiedad ClientValidationFunction en el CustomValidator para proporcionar cliente junto a la validación. Eso podría ser algo como esto:
function(sender, args) {
args.IsValid = document.getElementById('<%=TextBox1.ClientID%>').value != ''
|| document.getElementById('<%=TextBox2.ClientID%>').value != '';
}
OnClientClick de su botón o lo somete su llamada página de una función de JavaScript como este
function valtxtbox(){
if (document.getElementById('<%=TextBox1.ClientID%>').value== '' && document.getElementById('<%=TextBox2.ClientID%>').value== '')
{
alert('You must enter in data!');
return false;
}
aquí debería poner Y condicionar en lugar de O –
- 1. Se requieren dos clics cuando solo se necesita uno en el iPad/iPhone
- 2. Uno o dos dígitos numéricos Regex
- 3. MVC o Rest o Ambos
- 4. Etiquetas o Buscar o Ambos
- 5. categorías, etiquetas o ambos?
- 6. ¿Cómo puedo verificar múltiples cuadros de texto si nulo o vacío sin una prueba única para cada uno?
- 7. ¿Apio, habichuelas o ambos?
- 8. Bucle a través de cuadros de texto
- 9. La clase _NSZombie__GEOTileKeyWrapper se implementa en ambos ?? y ?? Uno de los dos será usado. ¿Cuál es indefinido
- 10. Dos cuerpos de bucle o uno (resultado idéntico)
- 11. ¿Cómo puedo sincronizar el desplazamiento de dos cuadros de texto multilínea?
- 12. .NET MVC enmascaramiento cuadros de texto Contraseña
- 13. Encuadernación en cuadros de texto no funcionan
- 14. Anular copiar o copiarWithZone: ¿o ambos?
- 15. Validar múltiples cuadros de texto usando errorprovider
- 16. Rieles: format.js o format.json, o ambos?
- 17. backbone o ext/sencha touch o ambos
- 18. ¿Se requieren puertos Azure?
- 19. Permitir HTML en cuadros de texto
- 20. Adquisición de íconos: haga uno, compre uno o encuentre uno
- 21. jquery-validate - addMethod - ¿cómo aplicar reglas personalizadas haciendo referencia a dos cuadros de texto?
- 22. Android - dos frases, dos estilos, uno TextView
- 23. Carrierwave; cargadores múltiples o solo uno?
- 24. Simultaneidad de rack: rack.multithread, async.callback o ambos?
- 25. Dos columnas div. Ancho dinámico de uno
- 26. vinculando dos VerticalScrollBars uno a otro
- 27. CSS: Dos campos, uno izquierdo ancho flexible, uno derecho ocupa el espacio restante
- 28. Incluyendo archivos de encabezado estándar. string.h o cstring? ¿o ambos?
- 29. Acceder a una matriz de cuadros de texto de entrada HTML usando jQuery o Javascript simple
- 30. A o B, no ambos, ninguno tampoco
Probablemente se podría simplificar a que args.IsValid = (+ TextBox1.Text TextBox2.Text) .Length> 0 o algo así. –
@Fredrik: Debe agregar las longitudes juntas, no el texto en sí. Eso lo hace más claro. Aunque creo que el camino de Lance es más claro aún. – Brian
Sí, ¡gracias por la limpieza! –