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

285
Views
Cómo verificar si las solicitudes específicas (no todas) de jQuery AJAX están finalizadas

Tengo la siguiente función que realiza algunas comprobaciones a través de ajax y habilita/deshabilita un botón Agregar al carrito:

 function formUpdate() { var data = { 'action': 'my_action_name', 'qty': $( '#qty' ).val(), }; var request = jQuery.ajax({ url: 'myajax.php', method: "POST", data: data, async: true }); request.done( function( response ) { // I disable my add to cart button here // Some code that takes a while to run to determine if add to cart should be enabled // I conditionally enable the add to cart here based on the above } } $( '#qty' ).on( 'change', function() { formUpdate(); });

La solicitud se activa cuando se cambia el campo #qty (número), cuando un usuario presiona las flechas arriba/abajo en el campo o usa las teclas arriba/abajo, la solicitud ajax se envía varias veces y porque el código en la request.done . un momento, si las solicitudes cercanas al final dan como resultado un botón Agregar al carrito deshabilitado, hay un breve período en el que las solicitudes anteriores lo mantienen habilitado hasta que se completan las solicitudes posteriores, por lo que un usuario podría agregar al carrito en ese breve momento.

Quiero evitar que esto ocurra, sé que puedo usar async: false , pero esto evita que el usuario use flechas/teclas arriba/abajo hasta que se complete la solicitud.

Lo que me gustaría hacer es mantener async: true , pero asegurarme de que agregar al carrito permanezca deshabilitado hasta que se completen todas las solicitudes. Intenté deshabilitar agregar al carrito antes de la solicitud ajax en la función formUpdate pero esto no parece trabajo, asumido debido a todas las solicitudes de ajax que habilitan/deshabilitan el botón Agregar al carrito.

Me pregunto si hay alguna manera de usar el nombre de la acción que estoy pasando en los datos para la solicitud ajax, luego tener una función que deshabilite el botón Agregar al carrito hasta que todas las solicitudes ajax con ese nombre terminen de ejecutarse.

He buscado código para esto, pero la mayor parte de lo que he encontrado está relacionado con TODAS las solicitudes de ajax, no con las específicas.

¿Es esto posible o hay otra solución?

about 4 years ago · Juan Pablo Isaza
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!