Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

300
Vistas
¿Por qué hay una diferencia entre el elemento de entrada de jquery y el elemento de entrada de javascript?

Tengo dos tipos de función de llamada check_negative_value() . en el primer tipo configuro onchange=change_quantity(this) y luego llamo check_negative_value() desde allí como:

 function change_quantity(elem) { check_negative_value(elem); console.log(elem); }

y en el segundo tipo configuro decrement_cart(this) y luego llamo check_negative_value() desde allí como:

 function decrement_cart(elem) { const input = $(elem).next('input'); check_negative_value(input); console.log(input); }

y en check_negative_value() debo usar input.value o input.val() !!

 function check_negative_value(input){ if(input.value <= 0){ alert('not accept value under 1'); input.value = 1; } }

O :

 function check_negative_value(input){ if(input.val() <= 0){ alert('not accept value under 1'); input.val(1); } }

porque cada función de llamada tiene un elemento diferente y el resultado de console.log es este: en la llamada jquery:

 r.fn.init [input.input-number.text-center, prevObject: r.fn.init(1)]

en llamada javascript:

 <input class="input-number text-center" type="number" value="-1" min="0" max="1000" onchange="change_quantity(this)">

el código html es:

 <div class="input-group-button" onclick="decrement_cart(this)"> <span class="input-number-decrement">-</span> </div> <input class="input-number text-center" type="number" min="0" max="1000" onchange="change_quantity(this)"> <div class="input-group-button" onclick="increment_cart(this)"> <span class="input-number-increment">+</span> </div>```

¿Cómo puedo usar el elemento de entrada en check_negative_value() sin diferencia entre input.val() y input.value ?

Gracias

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Ni JavaScript ni jQuery tienen un elemento de input . Los elementos input son objetos DOM proporcionados por el entorno host (navegador), no por el lenguaje (JavaScript) o la biblioteca (jQuery).

La diferencia que está viendo es el objeto DOM (con una propiedad de value ) frente a un objeto contenedor de jQuery a su alrededor (con un método val ).

¿Cómo puedo usar el elemento de entrada en check_negative_value() sin diferencia entre input.val() y input.value ?

Puede verificar si lo que tiene es un contenedor jQuery al ver si tiene una propiedad jquery o quizás más directamente en este caso si tiene una propiedad val :

 function check_negative_value(input){ if (input.jquery) { // It's a jQuery wrapper, get the first DOM element it contains from it input = input[0]; } if (input.value <= 0){ alert('not accept value under 1'); input.value = 1; } }

Nota al margen: val() devuelve una cadena (a menos que el conjunto de jQuery esté vacío), no un número (el valor de value también es siempre una cadena). Aunque <= 0 lo convertirá implícitamente, podría considerar convertirlo a propósito, ya que la conversión implícita supone que "" debería ser 0 ; más en mi respuesta aquí .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda