/ / Ako zabrániť jquery ui potvrdiť dialógové okno z pridania záznamov Twise pri dvojitom kliknutí? - jquery, jquery-ui

Ako zabrániť jquery ui potvrdiť dialógové okno z pridania twise záznamov pri dvojitom kliknutí? - jquery, jquery-ui

Snažím sa pridať do tabuľky nový záznamnasledujúci kód, pomocou dialógového okna jQuery ui a políčok potvrdenia. Ak dvakrát kliknem na tlačidlo potvrdenia, záznam sa dvakrát pridá do databázy. Ako to môžem zabrániť?

function AddNewClient(){
jQuery("#confirmdialog").html("are you sure");
jQuery("#confirmdialog").dialog({
modal: true,
buttons : {
"Confirm" : function() {
jQuery.ajax({
type: "POST",
url: "index.php?option=com_travelagencycrm&view=clients&task=AddNewClient&format=raw",
cache: false,
data : {id:jQuery("#client_id").val(),
fullname:jQuery("#fullname").val(),
vat_id:jQuery("#vat_id").val(),
address:jQuery("#address").val(),
state_id:jQuery("#state_name").val(),
country_id:jQuery("#country_name").val(),
email:jQuery("#email").val(),
phone_1:jQuery("#phone_1").val(),
phone_2:jQuery("#phone_2").val(),
postalcode:jQuery("#postalcode").val()
}
}).done(function(msg) {

jQuery("#tablepanelclients").flexReload();
//alert(msg);
jQuery("#confirmdialog").dialog("close");
jQuery("#editclient").dialog("close");

}).error(function(msg){
alert(msg);
jQuery("#confirmdialog").dialog("close");
jQuery("#editclient").dialog("close");
});


},
"Cancel" : function() {
jQuery(this).dialog("close");
}
}
});

jQuery("#confirmdialog").dialog("open");

}

odpovede:

1 pre odpoveď č. 1

Jedným riešením na strane klienta je pridať boolean:

var sent = false;

...

  buttons : {
"Confirm" : function() {
if (sent) return;
sent = true;
jQuery.ajax({

Ďalšie robustnejšie riešenie by bolo robiťna strane servera skontrolujte, či ste tieto údaje ešte neinštalovali.Väčšinou by som to radšej uprednostnil, pretože akýkoľvek problém alebo útok sa môže vyskytnúť mimo server (v prehliadači alebo v sieti).


1 pre odpoveď č. 2

Toto to urobil pre mňa:

$(":button:contains("OK")").attr("disabled", true);

0 pre odpoveď č. 3

U môže použiť funkciu jquery ui isOpen ().

 if( $(this).dialog("isOpen") ){
YOUR CODE
} else {
return;
}
$(this).dialog("close");
}