За последние 24 часа нас посетили 21492 программиста и 1022 робота. Сейчас ищут 825 программистов ...

Запрет кнопки и ссылке множественное нажатие

Тема в разделе "JavaScript и AJAX", создана пользователем shtrih, 26 сен 2019.

  1. shtrih

    shtrih Активный пользователь

    С нами с:
    10 дек 2015
    Сообщения:
    59
    Симпатии:
    3
    Добрый вечер!

    Есть форма, которая отправляет данные через аякс. Форма может быть отправлена, как "a href", так и button. Требуется запретить множественные нажатия. В интернете есть несколько примеров, но почему-то они не срабатывают. Прошу подсказать

    Код (Javascript):
    1.         function AjaxFormRequest(result_id,form_id,url)
    2.         {
    3.             $("#save").click(function() {
    4.                 $('#save').unbind("click");
    5.             });
    6.             $("#subbut").click(function() {
    7.                 $('#subbut').attr("disabled", true);
    8.             });
    9.             $('#save').unbind("click");
    10.             $('#subbut').attr("disabled", true);
    11.                   jQuery.ajax
    12.                   ({
    13.                       url:     url,
    14.                       type:     "POST",
    15.                       dataType: "html",
    16.                       data: jQuery("#"+form_id).serialize(),
    17.                        success: function(response)
    18.                        {
    19.  
    20.                             result = jQuery.parseJSON(response);
    21.                             setTimeout(function(){
    22.                               window.location = "view_z?id="+result.id;
    23.                             }, 500);
    24.                            
    25.  
    26.  
    27.                         },
    28.                         error: function(response)
    29.                         {
    30.                                   //document.getElementById(result_id).innerHTML = "Ошибка";
    31.                                   alert("Ошибка выполнения");
    32.                         }
    33.  
    34.                   });
    35.         }
    HTML:
    1.    <a href="" id="save" onclick="AjaxFormRequest('history_1', 'formzak', 'add_z')"  > <img src="img/save2.jpg"  width="100" height="50" alt="Сохранить заказ"></a>
    2.  
    3. <form id="formzak" action="" enctype="multipart/form-data" target="_top" method="post" >
    4.  
    5.         <input name="dop_phone1" type="text" class="form-control" id="inputphone1" >
    6.    
    7.  
    8. </form>
    9. <button id="subbut" type="submit" class="btn btn-default" formmethod="post" formaction="ins_z.php" onclick="AjaxFormRequest('history_1', 'formzak', './ins_z')">Сохранить</button>
    10.  
     
  2. shtrih

    shtrih Активный пользователь

    С нами с:
    10 дек 2015
    Сообщения:
    59
    Симпатии:
    3
    Код (Javascript):
    1.     <script type='text/javascript'>
    2.         window.onload = function () {
    3.  
    4.             var b = document.querySelector("button");
    5.  
    6.             b.onclick= function() {
    7.                 b.setAttribute("name", "helloButton");
    8.                 b.setAttribute("disabled", "");
    9.             }
    10.  
    11.         }
    12.     </script>
    Если я использую код в программе просто, то он работает.

    Но если я вставляю его в начале функции, то не срабатывает. Видимо я не понимаю какой то принцип действия
    Код (Javascript):
    1.         function AjaxFormRequest(result_id,form_id,url)
    2.         {
    3.             window.onload = function () {
    4.  
    5.                 var b = document.querySelector("button");
    6.  
    7.                 b.onclick= function() {
    8.                     b.setAttribute("name", "helloButton");
    9.                     b.setAttribute("disabled", "");
    10.                 }
    11.  
    12.             }
     
  3. shtrih

    shtrih Активный пользователь

    С нами с:
    10 дек 2015
    Сообщения:
    59
    Симпатии:
    3
    Даже так, alert не срабатывает. Не понимаю.
    Код (Javascript):
    1. alert ("222");    
    2. jQuery.ajax
    3. ({
    4.     url:     url,
    5.     type:     "POST",
    6.     dataType: "html",
    7.     data: jQuery("#"+form_id).serialize(),
    8.     //  timeout: 6000,
    9.     success: function(response)
    10.      {
    11.             alert ("123");
    12.      
    Проблему решил сам. script находился не в разделе body
     
    #3 shtrih, 27 сен 2019
    Последнее редактирование: 27 сен 2019
    Roman __construct нравится это.