Javascript ERROR

Publicado en 'Programación' por Jonaaaa, 24 Feb 2015.





  1. Jonaaaa

    Jonaaaa Miembro frecuente

    Registro:
    27 Jul 2013
    Mensajes:
    99
    Likes:
    3




    amigos estoy hacienod un trabajo en JS pero tengo un error en un codigo que no logro saber cual es
    serian tan amables de ayudarme.Muchas gracias
    el javascript es ingresar un numero del 0-99 y que este te lo regrese en letras
    el codigo es este.
    el script esta en negritas




    <html>
    <head>
    <title></title>
    </head>
    <body>
    <form name="fr">
    <table border=1>

    <tr><td>Ingrese numero<td><input name="tn">
    <tr><td><input type="button" value="proceso"onclick="calculo()">
    <tr><td colspan=2><textarea name ="salida" rows=6 colds=40></textarea>
    </table>
    </form>

    </body>
    <script type="text/javascript">
    function calculo(){
    N=parseInt(fr.tn.value)
    Unidad=["cero", "uno", "dos" ,"tres" ,"cuatro" ,"cinco" ,
    "seis" ,"siete" ,"ocho" ,"nueve","diez"]
    Especiales=[ "once", "doce","trece","catorce", "quince",
    "diezciseis", "diecisiete", "dieciocho", "diecinueve"]
    Decena=["veinte", "treinta","cuarenta","cincuenta", "sesenta",
    "setenta", "ochenta", "noventa"]

    if(N>=0 && N<11) {
    u= N% 10
    d=parseInt(Math.floor(N/10))
    fr.salida.value=(Unidad[N])
    }
    else if(N < 20) {
    fr.salida.value=(Especiales[N-11])
    }
    else if(N<100){
    if(u==0){
    fr.salida.value=(Decena[d-2])
    }
    else{
    fr.salida.value=(Decena[d] "y" , Unidad)
    }
    }
    else{
    fr.salida.value="el numero debe ser menor a 100"
    }
    }



    </script>

    </html>
     


  2. DuckDuckGo

    DuckDuckGo Miembro nuevo

    Registro:
    5 May 2014
    Mensajes:
    32
    Likes:
    21
    Me ha dado un poco de dolor en el ojo, pero creo que tu error está en
    fr.salida.value=(Decena[d] "y" , Unidad)

    Tal vez deba ser:
    fr.salida.value=(Decena[d] + " y " + Unidad[u ])



    Otra cosa, saca la declaración de las variables fuera del if, porque las necesitas en los otros else:
    u= N% 10
    d=parseInt(Math.floor(N/10))
    Y bueno aún así hay algunos errores en tu algoritmo porque al poner 25 me bota "cuarenta y cinco", eso te lo dejo como tarea, sólo me queda darte algunos consejos:

    1° Siempre pon primero el DOCTYPE para indicar la versión de tu HTML, en estos tiempos se suele poner <!doctype html>
    2° Indenta tu código, por el amor de (ingresa aquí la deidad superior en la que creas)
    3° Nunca te olvides de la codificación de tu página, dentro de <head> coloca <meta charset="utf-8"> si fuera UTF-8.
    4° Si se trata de un número es recomendable que al input le pongas type="number" (usa el HTML5, ya es estándar).
    5° Nunca es recomendable agregar listeners (eventos) directamente al HTML, en lugar de usar onclick="..." es recomendable usar en javascript elemento.addEventListener("click", function () {...}); Inclusive te recomendaría que no uses click en este caso, puedes usar el evento submit para que el HTML5 valide el número previamente.
    6° Ya no se suelen usar el atributo "name" ahora todo es más rápido con "id", y para obtener la referencia al elemento, tampoco es recomendable usar fr.tn.value en este caso podrías usar document.getElementById("...").value, o el querySelector también es una buena opción.
    7° Siempre usa puntos y comas en Javascript, no es obligatorio pero ordena más el código porque indica el fin de las sentencias.
    8° Siempre declara las variables, es peligroso no declarar las variables, ya que son creadas como globales y podrían ocasionar conflictos cuando quieras minificar tu código por ejemplo.
    9° Inicia con minúscula el nombre de las variables en Javascript, y utiliza el CamelCase para escribir nombres compuestos, por ejemplo, nunca has visto la variable Windows, siempre va con minúscula y para escribir palabras compuestas, tampoco hay get_element_by_id, es getElementById (CamelCase).
    10° Tu etiqueta <script> debe estar dentro del <body> de lo contrario al explorar tu código el navegador lo declarará como extraviado.
    11° Y bueno algunas cosas pequeñas, como después del if, else o , (coma) tiene que haber un espacio, o que es recomendable que el Javascript no esté incluído dentro del HTML, sino en otro archivo con la etiqueta <script src="..."></script>

    Esas son algunas observaciones, siempre es emocionante aprender a programar, espero puedas pulirte y algun día poder crear una red social juntos :quien:

    Buena suerte en tu aprendizaje!
     
  3. Jonaaaa

    Jonaaaa Miembro frecuente

    Registro:
    27 Jul 2013
    Mensajes:
    99
    Likes:
    3
    gracias man , fueron errores minimos por lo culpa no funcionaba , ya lo hice correr
    aqui estaba en error
    fr.salida.value=(Decena[d] "y" , Unidad)

    era
    fr.salida.value=(Decena[d-2] "y" , Unidad)

    gracias :)