Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

186
Views
el valor no está definido y se aplica un cheque en el javascript

el problema que tengo es que el segmento no está definido: no se pueden leer las propiedades de undefined (leyendo 'segmento') ¿cómo puedo escribir un código para usar si el valor no está definido o es un error, simplemente use $("#x").val().slice(3,5)

intenté así pero parece que no funciona

 w = (typeof x.val() !== 'undefined') ? $("#x").val().slice(3,5) : 0;
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

x.val() y $("#x").val() son cosas muy diferentes, a menos que suceda que x sea el resultado de una llamada anterior a $("#x") .

La única vez que el val de jQuery devuelve undefined es si lo llama en un conjunto vacío (lo que significaría que no hay ningún elemento con id="x" en el DOM cuando hace $("#x") ). La manera simple de hacer esto es tomar el valor y luego hacer la verificación:

 const val = x.val(); // Or `= $("#x").val()`, whatever is the one you actually want w = typeof val !== "undefined" ? val.slice(3,5) : 0;

Sin embargo, tenga en cuenta que está asignando una cadena a w en un caso pero un número en el otro. Por lo general, es mejor que sea consistente, ya sea que use siempre una cadena o siempre use un número.

about 4 years ago · Juan Pablo Isaza Report

0

En JavaScript, tanto el valor undefined como las cadenas vacías se consideran falsos y se evaluarán como falsos si se usan como argumentos booleanos. Puede usar este comportamiento para crear comprobaciones nulas muy simples con algunos paréntesis.

 w = ($('#x').val() || '').slice(3,5) || 0;

Este código primero agregará una verificación segura indefinida/nula a su operación $(...).val() usando una operación lógica o ( || ). Entonces, si no se encuentra ningún valor, se devolverá una cadena vacía en su lugar.

Una vez hecho esto, el segmento se aplicará al valor o a una cadena vacía. Si el resultado del segmento es una cadena vacía, se devuelve un 0 en su lugar.

Tenga en cuenta que en su ejemplo inicial también está intentando abordar la variable x en lugar de usar $('#x') . Estos no son intercambiables a menos que primero asigne var x = $('#x') .

about 4 years ago · Juan Pablo Isaza Report

0

Considera lo siguiente.

 $(function() { var w; $("#btn").click(function() { var x = $("#x").val(); w = (x !== undefined || x.length >= 4 ? x.slice(3, 5) : "0"); console.log(w); }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div> <input type="text" id="x"> <button id="btn">Go</buton> </div>

Esto comprueba si x no está undefined o si la longitud de la cadena es lo suficientemente larga para cortarla.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!