Как выполнить код только один раз

 
0
 
JavaScript
ava
Voldemar2004 | 16.12.2016, 17:35
Есть код на JQuery


                            $('#btn_send_to_email_show_elements').click(function () {
                                
                                $('#email_data_window').modal('show');

                                // Клик по кнопке "Отправить расчёт мне на e-mail"
                                $('#btn_send_to_email').click(function () {
                                    
                                    pattern_phone = RegExp(/^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/);
                                    pattern_email = RegExp(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,6})+$/);

                                    if (!($('#email_FIO').val()).trim()) {
                                        $("#email_FIO").css({"border": '#FF3E03 3px solid', "border-radius": '4px'});
                                    }
                                    else {
                                        $("#email_FIO").css({"border": '#F0F0F0 1px solid'});
                                    }

                                    if (!pattern_phone.test($("#email_phone").val())) {
                                        $("#email_phone").css({"border": '#FF3E03 3px solid', "border-radius": '4px'});
                                    }
                                    else {
                                        $("#email_phone").css({"border": '#F0F0F0 1px solid'});
                                    }

                                    if (!pattern_email.test($("#email_email").val())) {
                                        $("#email_email").css({"border": '#FF3E03 3px solid', "border-radius": '4px'});
                                    }
                                    else {
                                        $("#email_email").css({"border": '#F0F0F0 1px solid'});
                                    }
                                    
                                    if (pattern_email.test($('#email_email').val()) && pattern_phone.test($('#email_phone').val()) && $('#email_FIO').val()) {
                                        
                                            // Отправка почты
                                            $.ajax({
                                                url: 'bmk/mail.php',
                                                data: {
                                                    email_FIO: $('#email_FIO').val(),
                                                    email_phone: $('#email_phone').val(),
                                                    email_email: $('#email_email').val(),
                                                    email_comment: $('#email_comment').val(),
                                                    email_price: $('#price_2').val(),
                                                    email_gorelka: $('#gorelka_combo').prop('checked'),
                                                    email_nasos_GVS: $('#nasos_gvs').prop('checked'),
                                                    email_teploobmennik_GVS: $('#teploobmennik_gvs').prop('checked'),
                                                    email_UARTS: $('#uzel_regul').prop('checked'),
                                                    email_GRU: $('#GRU').prop('checked'),
                                                    email_power: $('#slider_value_mVatt').val(),
                                                    email_vatts: $('#vatts').text()
                                                },
                                                type: 'post',
                                                success: function () {
                                                    $('#email_FIO').val('');
                                                    $('#email_phone').val('');
                                                    $('#email_email').val('');
                                                    $('#email_comment').val('');

                                                    $('#email_data_window').modal('hide');
                                                    $('#email_message_window').modal('show');
                                                }
                                            });
                                                    
                                    }
                                    
                                });                                
                                
                            });


где btn_send_to_email - кнопка, пользователь может кликнуть по ней много раз, соответственно Ajax-код отправки почты будет выполнен столько раз, сколько он щелкнул по кнопке.

Как сделать, чтобы код отправки почты на Ajax срабатывал всегда только один раз ?
Kommentare (2)
ava
beaver | 17.12.2016, 07:36 #
ну как-то так напрашивается.....

$('#btn_send_to_email').click(function () {
                                    $('#btn_send_to_email').click(function () {e = 0;});
                                    pattern_phone = RegExp.............
ava
mailworker7 | 19.12.2016, 22:07 #
http://spetspark-nn.ru/machines/excavation/digger/



Ни один строительный объект не обходится без спецтехники.
Аренда экскаватора в Нижнем Новгороде по выгодным ценам.
Узнайте как подобрать спецтехнику выгодно. 
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden