2011-06-17 17 views
16

Tengo una llamada ajax vinculada a un enlace a través de jQuery, y quiero que sea interceptada por un cuadro de diálogo de confirmación. Pero la llamada ajax se dispara independientemente de la opción que se seleccione (incluso si el usuario simplemente cierra el cuadro de diálogo).Interceptar una llamada jQuery.ajax() con confirm()

¿Hay alguna manera de hacer que la confirmación funcione como lo hace en contextos sincrónicos?

HTML:

<a href="#" class="removeItem delete">remove</a> 

jQuery:

$('.delete').click(function() { 
    confirm('Are you sure you want to delete this?'); 
}); 


$('.removeItem').click(function (event) { 
    event.preventDefault(); 

    $.ajax({ 
     url: 'myUrl', 
     type: "POST", 
     data: { 
      // data stuff here 
     }, 
     success: function() { 
      // does some stuff here... 
     } 
    }); 
}); 

Respuesta

66
$('.removeItem').click(function (event) { 
    if (confirm('Are you sure you want to delete this?')) { 
     $.ajax({ 
      url: 'myUrl', 
      type: "POST", 
      data: { 
       // data stuff here 
      }, 
      success: function() { 
       // does some stuff here... 
      } 
     }); 
    } 
}); 
Cuestiones relacionadas