Heroes Community Launch en Tijuana  
Entrar   |   Registro ]
Inicio   |   Eventos   |   Foros   |   Galerías   |   Recursos   |   Directorio   |   Planeta  


Discusión Técnica

Autor Tópico: Validar DropDownList en Asp.net por JavaScript
fermaga30
Validar DropDownList en Asp.net por JavaScript
Publicado: Tuesday, June 03, 2008 2:28 PM (PST)
Hola amigos listeros, tengo un problema al validar que un usuario seleccione un registro de un DropDownList en asp.net desde JavaScript, con el TexBox no tengo problemas pero con el DropDownList...este es el código que utilizo, no marca error pero se pasa por alta la instrucción. if (document.form1.ddlTurno.SelectedValue=='') { alert(Bla, bla, bla") return false } return true En que estoy mal. Salu2.

Comentarios:

Autor Tópico:
sesquiv
Validar DropDownList en Asp.net por JavaScript
Publicado: Tuesday, June 03, 2008 3:08 PM (PST)
Necesariamente debe ser con Javascript? Por qué no usas el requiredFieldvalidator

fermaga30
Validar DropDownList en Asp.net por JavaScript
Publicado: Tuesday, June 03, 2008 4:00 PM (PST)
Lo que pasa es que con el Java Script desplegaría un mensaje en popup y para que el usuario le de aceptar, pero con el requiredFieldvalidator aparte si el usuario desea cambiar a otra pantalla no lo dejaría saltar hasta que seleccione un registro...Alguna otra idea que se les ocurra?

proteo5
Validar DropDownList en Asp.net por JavaScript
Publicado: Tuesday, June 03, 2008 4:07 PM (PST)

le agregas al control el atributo:   

onchange="javascript:onChangeCatalog()"

OnChangeCatalog es una funcion de javascript que tienes que definir tu.

Ya con eso tomas el id del control y con un

var control =document.getElementsByID("NombreDelControl")

Haces el if:

if( control.value == "X_Cosa")

{

//muestra popup

}



fermaga30
Validar DropDownList en Asp.net por JavaScript
Publicado: Tuesday, June 03, 2008 4:13 PM (PST)
ok Proteo, pero en donde tengo que definir el OnChangeCatalog que me comentas, no tengo mucha experiencia en esta parte Salu2.

proteo5
Validar DropDownList en Asp.net por JavaScript
Publicado: Tuesday, June 03, 2008 4:31 PM (PST)

En el load de la forma:

DropDownList1.Attributes.Add("onchange", "javascript:onChangeCatalog();")

En el html:

<script type="text/javascript" language="javascript">

function onChangeCatalog()

{

var control =document.getElementsByID("NombreDelControl");

if( control.value == "X_Cosa")

{

//muestra popup

}

}

</script>

 



fermaga30
Validar DropDownList en Asp.net por JavaScript
Publicado: Wednesday, June 04, 2008 8:16 AM (PST)
Explico mi caso con respecto al DropDownList, tengo un boton de enviar, antes valido algunos texbox que esten capturados, pero con el dropdownlist no me esta saliendo, no manda la alerta, pongo mi código para que me puedan orientar por donde ando mal.
------- En el HTML ----------
function Validar_Campos(boton)
{
if (document.form1.txtNombre.value=='')
{
alert("Deberá ingresar el nombre.")
return false
}
if (document.form1.txtApaterno.value=='')
{
alert("Deberá ingresar el apellido paterno.")
return false
}
if (document.form1.txtAmaterno.value=='')
{
alert("Deberá ingresar el apellido materno.")
return false
}
if (document.form1.txtRfc.value=='')
{
alert("Deberá ingresar el Rfc.")
return false
}
var control = document.getElementsByID("ddlTitulo");
if( control.value=='')
{
alert("Deberá seleccionar el título.")
return false
}
return true
}
--------- En el Evento Load de la página --------
cmdEnviar.Attributes.Add("onclick", "javascript:return Validar_Campos();")

Con los Texbox no hay problema, pero con el dropdownlist no valida. Salu2


l0_0l
Validar DropDownList en Asp.net por JavaScript
Publicado: Wednesday, June 04, 2008 11:08 AM (PST)
recuerda que el value de un dropdownlist es en si el value de los options ej. [select id="miselect"] [option value="1"]valor 1[/option] [option value="2"]valor 2[/option] [/select] entonces si tu comparas esto value == "" nunca se ejecuta porque siempre existe un valor. Para que te funcione como lo estas haciendo tendrias que dejar tu primer valor en blanco por ejemplo: [option value=""]- selecciona uno-[/option] saludos.

fermaga30
Validar DropDownList en Asp.net por JavaScript
Publicado: Friday, June 06, 2008 8:00 AM (PST)
Pero el primer valor en blanco donde lo tendría que dejar, por que al cargar el DropDownList si le estoy dejando el primer registro en blanco y ya despues los que se cargan, pero eso en el código Js como lo corrijo? Salu2.

proteo5
Validar DropDownList en Asp.net por JavaScript
Publicado: Friday, June 06, 2008 11:15 AM (PST)

Bueno, tampoco te podemos hacer todo, si no entonces si vamos a cobrar acesoria, jejeje.

En el momento que estes llenando el dropdownlist tienes que agregarle una opcion mas que es la de "Seleccione Opcion" con el valor string.Empty o sea "", y tienes que ponerla como la primera opcion y que este seleccionada.

Si lo haces por datasource, tienes que agregarle la opcion al datatable o listview o cualquier cosa que le estes pasando antes de asignarselo al datasource.  Si lo estas llenando a mano, por un ciclo, antes de entrar al siclo crea la opcion en el dropdownlist. Si no es por ninguna de estas dos formas que son las mas utilizadas pues tendriamos que ver el codigo de como llenas el dropdownlist, pero al menos creo que ya tienes la idea.



fermaga30
Validar DropDownList en Asp.net por JavaScript
Publicado: Friday, June 06, 2008 11:24 AM (PST)
Jajajajaja, de echo no quiero que me hagan todo, me saldría un poco costoso com dicen.
Mira, mi código con el que lleno el DropDownList es este y creo que es similar a lo que me estan pidiendo que haga, no?, en caso contrario corrijanme, por que la función Js no esta validando si no hay registro seleccionado en el DropDownList como debiera de ser.
-------------------------------
dsAuxiliar = clsDataBase.ResultadoDataSet(Qry, "Tablas")
ddlLista.DataSource = dsAuxiliar.Tables("Tablas").DefaultView
ddlLista.DataValueField = CampoValor
ddlLista.DataTextField = CampoTexto
ddlLista.DataBind()
ddlLista.Items.Insert(0, "")


Salu2.


proteo5
Validar DropDownList en Asp.net por JavaScript
Publicado: Friday, June 06, 2008 11:34 AM (PST)

Sabes, tienes mucha suerte,

Public  Function PonEncabezadoParaCombo(ByVal ElDT As DataTable, ByVal CampoNombre As String, ByVal CampoValor As String) As DataTable

Dim ElDTReg As DataTable = ElDT.Clone

Dim Encabeza As DataRow = ElDTReg.NewRow

Encabeza(CampoValor) = 0

Encabeza(CampoNombre) = "-- Seleccionar --"

ElDTReg.Rows.Add(Encabeza)

For Each Renglon As DataRow In ElDT.Rows

Dim Copia As DataRow = ElDTReg.NewRow()

For x As Integer = 1 To ElDTReg.Columns.Count - 1

Copia(x - 1) = Renglon(x - 1)

Next

ElDTReg.Rows.Add(Copia)

Next

Return ElDTReg

End Function

Tu codigo quedaria

dsAuxiliar = clsDataBase.ResultadoDataSet(Qry, "Tablas")
DIM dtAuxiliar2 as DataTable = PonEncabezadoParaCombo(dsAuxiliar.Tables("Tablas"), CampoTexto, CampoValor)

ddlLista.DataSource = dsAuxilia2
ddlLista.DataValueField = CampoValor
ddlLista.DataTextField = CampoTexto
ddlLista.DataBind()



proteo5
Validar DropDownList en Asp.net por JavaScript
Publicado: Friday, June 06, 2008 11:38 AM (PST)

Un detalle que se me paso, en la funcion que te pase, en la linea

Encabeza(CampoValor) = 0

es donde le pones el valor que vas a buscar para validar,

Encabeza(CampoValor) = 0

Encabeza(CampoValor) = ""

Encabeza(CampoValor) = string.Empty

Encabeza(CampoValor) = "-1"

etc



fermaga30
Validar DropDownList en Asp.net por JavaScript
Publicado: Friday, June 13, 2008 1:39 PM (PST)
Hola Proteo.
Tomando tu ejemplo me dice "Tanto DataSource como DataSourceID están definidos en 'ddlCategoriaElemento'. Quite una definición.".
Esto es al cargar el primer DropDownListl de la página llamado "ddlCategoriaElemento", pero ya le busque y el DataSourceID yo pienso que no esta definido, a que crees que se deba el error?.

Salu2.


proteo5
Validar DropDownList en Asp.net por JavaScript
Publicado: Friday, June 13, 2008 4:07 PM (PST)

Como te habia comentado antes, el DropDownList tambien se puede llenar atravez de los controles ObjectDataSource y SQLDataSource. Cuando se utilizan estos controles para llenarse, en DataSourceID se pone el ID del control (ObjectDataSource o SQLDataSource).

Sin embargo tu estas llenando a mano el dropdownlist por medio del DataSource por lo que con poner "DropDownList1.DataSourceID = string.Empty" debe ser mas que suficiente, aunque esta propiedad tambien se puede poner vacia en diseño en vez de en tiempo de ejecucion a menos que por ahi en otro lugar estes poniendole un id en tiempo de ejecucion.



fermaga30
Validar DropDownList en Asp.net por JavaScript
Publicado: Monday, June 16, 2008 3:01 PM (PST)
Gracias Proteo por la disposición de ayuda, me sigue marcando lo mismo y ya busque y no estoy utilizando ambas propiedades al mismo tiempo, me hechare un clavado exaustivamente para ver el detalle, por que lo más seguro es que sea eso.

Salu2.


  
Sea nuestro patrocinador
Nuevas fotos


Cecyte - audiencia


Cecyte - participación


Cecyte - presentación de proyectos


Derechos reservados TJ.NET