none
¿qué hay de malo en esta sentencia de javascript? RRS feed

  • Pregunta

  • Hola a todos:

    Uso esta sentencia inline de javascript  en un onclientclick de un button

    if (document.getElementById('cphcontenido_lblcriteriosobras').value=='') {alert('Faltan criterios');return false} document.getElementById('cphcontenido_lblcriteriosobras').style.display='none';document.getElementById('cphcontenido_lblcriteriosobras').value='';document.getElementById('cphcontenido_txtcriterioobras').value=''

    Pero no se ejecuta. Hay algo mal, no sé qué.

    Pido vuestra ayuda.

    Gracias de antemano

    viernes, 27 de marzo de 2015 17:22

Respuestas

  • >>Si hago un alert me dice siempre 'undefined'. ¿Por qué? ¿Qué quiere decir eso?

    lo primero que aconsejaria es que al script le des una mejor identacion, porque asi como lo defines parece una bola de codigo que no se puede interpretar

    entiendo ese codigo lo defines dentro del mismo aspx, no?

    despues intenta usando

    alert(document.getElementById('<%=lblcriteriosobras.ClientID%>').value);

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 28 de marzo de 2015 11:24

Todas las respuestas

  • hola

    aconsejaria que no la definas inline sino que crees la funcion que invoques desde el onclientclick

    <script> function validar(){ var lblcriteriosobras = document.getElementById('cphcontenido_lblcriteriosobras'); var txtcriterioobras = document.getElementById('cphcontenido_txtcriterioobras'); if (lblcriteriosobras.value=='') { alert('Faltan criterios'); return false; } lblcriteriosobras.style.display='none'; lblcriteriosobras.value=''; txtcriterioobras.value=''

    return true; } </script>

    si lo haces podras ver que en el return false te falta el punto y coma

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    viernes, 27 de marzo de 2015 17:29
  • if (document.getElementById('cphcontenido_lblcriteriosobras').value==='') 
            {
               alert('Faltan criterios');
              } 
    document.getElementById('cphcontenido_lblcriteriosobras').style.display='none';
    document.getElementById('cphcontenido_lblcriteriosobras').value='';
    document.getElementById('cphcontenido_txtcriterioobras').value='';


    prueba asi... consejo... existen validadores de codigo javascript en linea para verificar los errores...

    Si te funciono marca como respuesta, sino  comenta..

    Saludos


    • Editado Julio Csar viernes, 27 de marzo de 2015 17:52
    viernes, 27 de marzo de 2015 17:52
  • Hola:

    El HTML es

            <asp:TextBox ID="txtcriterioobras" runat="server" />
            <asp:DropDownList ID="ddldiasobras" runat="server" />
            <asp:Label ID="lblraya1obras" Text="/" runat="server" />
            <asp:DropDownList ID="ddlmesesobras" runat="server" />
            <asp:Label ID="lblraya2obras" Text="/" runat="server" />
            <asp:DropDownList ID="ddlanosobras" runat="server" />
            <asp:Button ID="btnfiltrarobras" Text="Filtrar" OnClientClick="var txtCriterio = document.getElementById('cphcontenido_txtcriterioobras'); var ddlanos = document.getElementById('cphcontenido_ddlanosobras'); var chkno = document.getElementById('cphcontenido_chknoobras') ; if (txtCriterio.value=='' && ddlanos.style.display =='none' && !chkno.checked) {alert('Faltan criterios'); return false}" runat="server" />
            <asp:Button ID="btnbuscarobras" Text="Buscar" OnClientClick="var txtCriterio = document.getElementById('cphcontenido_txtcriterioobras'); var ddlanos = document.getElementById('cphcontenido_ddlanosobras'); var chkno = document.getElementById('cphcontenido_chknoobras') ; if (txtCriterio.value=='' && ddlanos.style.display =='none' && !chkno.checked) {alert('Faltan criterios'); return false}" runat="server" />
            <asp:Button ID="btntodosobras" Text="Todos" OnClientClick="var txtCriterio = document.getElementById('cphcontenido_txtcriterioobras'); var ddlanos = document.getElementById('cphcontenido_ddlanosobras'); var chkno = document.getElementById('cphcontenido_chknoobras') ;if (document.getElementById('cphcontenido_btnfiltrarobras').value=='Filtrar' && document.getElementById('cphcontenido_btnbuscarobras').value=='Buscar') {document.getElementById('cphcontenido_lblcriteriosobras').value='';document.getElementById('cphcontenido_lblcriteriosobras').style.display='none'; if (document.getElementById('cphcontenido_txtcriterioobras').value=='') alert('Faltan criterios');document.getElementById('cphcontenido_txtcriterioobras').value='';return false}" runat="server" />
            <br /><asp:label ID="lblcriteriosobras" runat="server" />
    

    Esto está en un contentplaceholder llamado cphcontenido. Bntodosobras contiene el script puesto en el post anterior.

    Como veis lblcriteriosobras está después de bntodosoobras. ¿Se puede referenciar a algo que está después del script en que lo referencio?

    Gracias de antemano

    sábado, 28 de marzo de 2015 7:58
  • Sí, no hay problema.

    Lo importante es que el objeto esté creado cuando se ejecuta el script. El código se va a ejecutar cuando el usuario haga click en alguno de los botones, para entonces la etiqueta ya estará creada.

    • Marcado como respuesta volar.2014 sábado, 28 de marzo de 2015 9:27
    • Desmarcado como respuesta volar.2014 sábado, 28 de marzo de 2015 9:27
    sábado, 28 de marzo de 2015 8:06
  • Hola:

    Así es, veo que no hay problema.

    Hice una función

    function hacer_todos(tabla)
    {alert(document.getElementById('cphcontenido_lblcriteriosobras').value);var txtCriterio = document.getElementById('cphcontenido_txtcriterioobras'); 
      var ddlanos = document.getElementById('cphcontenido_ddlanosobras');
      var chkno = document.getElementById('cphcontenido_chknoobras')
      if (txtCriterio.value=='' && ddlanos.style.display =='none' && !chkno.checked)
    {alert('Faltan criterios');
        ;return false}
        document.getElementById('cphcontenido_lblcriteriosobras').style.display='none'; 
        document.getElementById('cphcontenido_txtcriterioobras').value=''
    }

    Si hago un alert me dice siempre 'undefined'. ¿Por qué? ¿Qué quiere decir eso?

    Gracias

    sábado, 28 de marzo de 2015 9:26
  • Hola:

    Me fucionó usando textContent en vez de valu. No sé la diferencia ni si es soportado por todos los navegadores.

    ¿Sabeis vosotros?

    Gracias

    sábado, 28 de marzo de 2015 9:56
  • >>Si hago un alert me dice siempre 'undefined'. ¿Por qué? ¿Qué quiere decir eso?

    lo primero que aconsejaria es que al script le des una mejor identacion, porque asi como lo defines parece una bola de codigo que no se puede interpretar

    entiendo ese codigo lo defines dentro del mismo aspx, no?

    despues intenta usando

    alert(document.getElementById('<%=lblcriteriosobras.ClientID%>').value);

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 28 de marzo de 2015 11:24