jQuery ajax отправляет несколько запросов на 1 клик

jQuery ajax отправляет несколько запросов на 1 клик

01.04.2015 01:07:19 Просмотров 17 Источник

я не знаю, что случилось с моим кодом я нажимаю на кнопку Отправить отправить письмо и его отправки несколько дубликатов писем.. Тот же jQuery и html-код, используемый на другой странице для удаления файлов и прекрасно работающий.. неужели я что-то делаю? ошибаешься ? enter image description here

jQuery:

$(document).on('click','.sendwork',function(e){
    $('#spinner').show();
    var sendWork = $(this).data('id');

    var res         = sendWork.split("-");
    var comment_id  =  res[0];
    var status      =  res[1];
    var order_id    =  res[2];
    var td = $(this).closest("td").andSelf();

    $.ajax({
        type:'POST',
        url:'{!! URL::to('admin/sendwork/') !!}',
        cache: false,
        data:{
         '_token'   : '{{ csrf_token() }}',
         'comment_id':comment_id,
         'status':status,
         order_id:order_id,
        },
        success: function(data){
            $('#spinner').hide();
            if (data == 'true') {
                // $('.email-resp').html('');
                td.html('Email Sent');
            }

        },
        error:function(data){
            $('#spinner').hide();
            td.html('<p style="color:red; font-weight:bold;">Fail</p>');
        }
    });

 });

формат html:

<table class="table table-compact table-bordered">

    <tr>
        <th width="10"></th>
        <th width="30">Date</th>
        <th width="20">User</th>
        <th width="20">Status</th>
        <th width="450">Comment</th>
        <th width="100">Files</th>
    <th width="30">Action</th>
    </tr>

    <tr>
        <td><a class="del-comment" href="javascript:void(0)" data-token="XyjbZEsvbfTnurM0OnRP75k049Re0dPpLynRqUe6" id="217"><span style="color:red;" class="glyphicon glyphicon-remove"></span></a> </td>
        <td>01-Apr-15</td>
        <td width="30">hy</td>
        <td>Completed</td>
        <td width="42" align="left"><p>sdf</p></td>
        <td>
            <a href="/uploads/PE10_1427882386_0.png" target="_blank" alt="PE10_1427882386_0.png" title="PE10_1427882386_0.png"><i class="fa fa-picture-o"></i></a>                  </td>
        <td><a href="javascript:void(0)" class="btn btn-small btn-success sendwork" data-id="217-Completed-LEH1000">Send</a></td>
    </tr>

</table>
У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/29388002/jquery-ajax-sending-multiple-request-on-1-click#comment46953803_29388002
проверьте с помощью $(документ).выкл ("щелчок").на('нажмите',
https://stackoverflow.com/questions/29388002/jquery-ajax-sending-multiple-request-on-1-click#comment46953869_29388002
Сколько элементов имеет класс".отправить работу"?
https://stackoverflow.com/questions/29388002/jquery-ajax-sending-multiple-request-on-1-click#comment46953898_29388002
где находится sendWork в html?
https://stackoverflow.com/questions/29388002/jquery-ajax-sending-multiple-request-on-1-click#comment46953933_29388002
в этом только одна кнопка с классом sendwork...
https://stackoverflow.com/questions/29388002/jquery-ajax-sending-multiple-request-on-1-click#comment46953968_29388002
и sendWork храня значение data-id
https://stackoverflow.com/questions/29388002/jquery-ajax-sending-multiple-request-on-1-click#comment46955009_29388002
Убедитесь, что вы включили этот код в html только один раз. Попробуйте добавить какую-нибудь консоль.войдите в свою функцию, посмотрите, сколько раз она печаталась. Довольно трудно определить проблему из этой части кода

Ответы - jQuery ajax отправляет несколько запросов на 1 клик / jQuery ajax sending multiple request on 1 click

Tiger

01.04.2015 01:47:18

$(document).off('click').on('click', function(){
   //
});

будет работать

https://stackoverflow.com/questions/29388002/jquery-ajax-sending-multiple-request-on-1-click/29388835#comment46955409_29388835
его работа, но когда модальный закрыт, это не будет открывать другой модальный, если только nee не обновит страницу..
Muhammad Hamza Younas

01.04.2015 02:05:18

Проблема решена я просто изменил код:

форма

$(document).on('click','.sendwork',function(e){

к

$('.sendwork').on('click',function(e){
Является ответом!
hy_sultani

21.04.2015 12:44:03

попробовать это

$(document).on('click','.sendwork',function(e){
   // do some thing
});
Mizael Clistion

20.08.2018 01:42:45

"Я решил свою проблему, добавив $(’#foo').unbind (’click'); in .done(функция (данные) событие прикреплено с $.Аякс. Спасибо!"

Решение здесь: http://eligeske.com/jquery/jquery-sending-multiple-ajax-requests-all-by-itself-kind-of/

Awais Jameel

22.11.2018 11:12:50

Этот код действительно отлично работает для меня.

RahmanRezaee

08.01.2020 02:11:39

использовать асинхронные:ложные , чтобы предотвратить множественные запросу

$(document).off('click').on('click', function(){
    $.ajax({
        type:'POST',
        url: ,
        async:false,
        cache: false,
        data:{}
         ,
        success: function(data){

        },
        error:function(data){
        }
    });   

});
Закрыть X