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

 
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 срабатывал всегда только один раз ?
Ответы (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/



Ни один строительный объект не обходится без спецтехники.
Аренда экскаватора в Нижнем Новгороде по выгодным ценам.
Узнайте как подобрать спецтехнику выгодно. 
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить