Reputation: 305
$('button#rejectWithdraw').click(function(e) {
$.ajax({
url: $('#rejectUrl').val(),
type: "POST",
data: {data:text},
success: function (data) {
$('#modelContent').modal('toggle');
},
error: function (err) {
// alert("Something went wrong"+err);
}
});
});
The modal closes only after success. I need it closes immediately after submit or the button should be disabled after once clicked.
How to do this?
Upvotes: 0
Views: 495
Reputation: 30739
Use .one()
of JQuery like this to make the button click only once:
$( "button#rejectWithdraw" ).one( "click", function(e) {
$.ajax({
url: $('#rejectUrl').val(),
type: "POST",
data: {data:text},
success: function (data) {
$('#modelContent').modal('toggle');
},
error: function (err) {
// alert("Something went wrong"+err);
}
});
});
Attach a handler to an event for the elements. The handler is executed at most once per element per event type.
Upvotes: 1
Reputation: 457
The modal closes after success because the code closing the modal
$('#modelContent').modal('toggle');
is in success handler. If you want it to be executed imidiately after submit you can just place it right after your $.ajax call.
$('button#rejectWithdraw').click(function(e) {
$.ajax({
url: $('#rejectUrl').val(),
type: "POST",
data: {data:text},
success: function (data) {
// code placed here is executed only on successfull POST
},
error: function (err) {
// alert("Something went wrong"+err);
}
});
$('#modelContent').modal('toggle');
});
Upvotes: 1
Reputation: 3305
You have to add disabled propery like
$('button#rejectWithdraw').click(function(e) {
$('button#rejectWithdraw').prop('disabled', true);
$.ajax({
url: $('#rejectUrl').val(),
type: "POST",
data: {data:text},
success: function (data) {
$('#modelContent').modal('toggle');
},
error: function (err) {
// alert("Something went wrong"+err);
}
});
});
Upvotes: 1
Reputation: 8597
By setting property 'disabled' to true:
$('button#rejectWithdraw').prop('disabled', true);
Upvotes: 1