Foros del Web » Programando para Internet » Javascript »

alerta por IF

Estas en el tema de alerta por IF en el foro de Javascript en Foros del Web. hola a todos estoy creando un formulario, y tengo una situación de un campo que tiene que ser llenado dependiendo de la multipricacion de unos ...
  #1 (permalink)  
Antiguo 30/08/2018, 10:48
 
Fecha de Ingreso: abril-2015
Mensajes: 130
Antigüedad: 9 años
Puntos: 0
alerta por IF

hola a todos

estoy creando un formulario, y tengo una situación de un campo que tiene que ser llenado dependiendo de la multipricacion de unos <select> si es mayor que tiene que llenar el campo si es menor q no lo tiene que llenar.

esto lo estoy realizando con javascript pero soy nuevo y no se si esta correcto el codigo por que IF

este es mi codigo: javascript

Código Javascript:
Ver original
  1. <script>
  2.             function continuar(){
  3.                 var Num = document.getElementById("multiprica").value;
  4.                 var Acc = document.getElementById("Plan_Accion").value;
  5.                if(Num > 4){
  6.                 if (Acc.length==""){
  7.                     var errorNombre=document.createElement('p');
  8.                     errorNombre.innerHTML= 'No escribiste tu nombre';                  
  9.                     document.getElementById("Comentarios").appendChild(errorNombre);
  10.                     return false;
  11.                 }
  12.             }
  13.             }
  14.          </script>

este es mi campo que se tiene que llenar

Código HTML:
 <div class="col-xs-17">
                            <label for="sel1">Plan de Acción: es un plan que prioriza las iniciativas más importantes para cumplir con ciertos objetivos y metas</label>
                            <input hidden="¿QUE?" name="ID_QUE" value="1">  
                            <textarea class="form-control" rows="3" name="Plan_Accion" value="Plan_Accion"></textarea>
                        </div> 
este es el boton que llama a la funcion javascript
Código HTML:
<div class="btn-group btn-group-lg">
                              <button type="submit" class="btn btn-primary" onclick="return continuar();">Continuar</button> </div> 
  #2 (permalink)  
Antiguo 04/09/2018, 07:50
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 11 años, 9 meses
Puntos: 39
Respuesta: alerta por IF

A ver, estás ignorando el tipo de valor que adquieren las variables.

Primero, estás obteniendo los datos de los elementos HTML con un gerElementById y ninguno de tus elementos tiene el ID definido.

Código HTML:
Ver original
  1. <div class="col-xs-17">
  2.                             <label for="sel1">Plan de Acción: es un plan que prioriza las iniciativas más importantes para cumplir con ciertos objetivos y metas</label>
  3.                             <input hidden="¿QUE?" Id="multiplica" value="1">  
  4.                             <textarea class="form-control" rows="3" id="Plan_Accion" name="Plan_Accion" value="Plan_Accion"></textarea>
  5.                         </div>
Segundo en el primer IF donde comparas si num es mayor a 4, tienes que tener presente que el value obtenido de los elementos HTML siempre va a ser tipo "string", por lo que nunca te va a hacer una comparación numérica.

Si estas seguro de que el valor que te va a dar el campo es numérico, puedes hacerle un parseInt directamente, si no debes compararlo con un isNAN y pasarlo si es debido.

Código Javascript:
Ver original
  1. var Num = parseInt( document.getElementById("multiprica").value);

De este modo te aseguras que el valor de Num sea del tipo numérico antes de hacer la comparación IF.

Por otro lado, cuando utilizas el método length de JavaScript, siempre te va a devolver un valor numérico. Lo correcto es que lo compares con un valor igual. Por ejemplo, si Acc no tuviera ningún valor, Acc.length te dará 0 (cero), la longitud del string que tenga la variable.

Lo correcto sería:

Código Javascript:
Ver original
  1. if (Acc.length === 0){

En este tipo de comparaciones también te aconsejo usar un triple igual, que te comparará el resultado exacto. Con tu código actual podría darte true si el valor del Acc.length es igual a 0, pero podría darte resultados inesperados. Lee un poco sobre las comparaciones para entenderlo mejor.

Espero que lo tengas un poco más claro.
__________________
Diseño Web - Arisman Web

Etiquetas: alerta, button, funcion, java
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:30.