Добрый вечер! Есть форма, которая отправляет данные через аякс. Форма может быть отправлена, как "a href", так и button. Требуется запретить множественные нажатия. В интернете есть несколько примеров, но почему-то они не срабатывают. Прошу подсказать Код (Javascript): function AjaxFormRequest(result_id,form_id,url) { $("#save").click(function() { $('#save').unbind("click"); }); $("#subbut").click(function() { $('#subbut').attr("disabled", true); }); $('#save').unbind("click"); $('#subbut').attr("disabled", true); jQuery.ajax ({ url: url, type: "POST", dataType: "html", data: jQuery("#"+form_id).serialize(), success: function(response) { result = jQuery.parseJSON(response); setTimeout(function(){ window.location = "view_z?id="+result.id; }, 500); }, error: function(response) { //document.getElementById(result_id).innerHTML = "Ошибка"; alert("Ошибка выполнения"); } }); } HTML: <a href="" id="save" onclick="AjaxFormRequest('history_1', 'formzak', 'add_z')" > <img src="img/save2.jpg" width="100" height="50" alt="Сохранить заказ"></a> <form id="formzak" action="" enctype="multipart/form-data" target="_top" method="post" > <input name="dop_phone1" type="text" class="form-control" id="inputphone1" > </form> <button id="subbut" type="submit" class="btn btn-default" formmethod="post" formaction="ins_z.php" onclick="AjaxFormRequest('history_1', 'formzak', './ins_z')">Сохранить</button>
Код (Javascript): <script type='text/javascript'> window.onload = function () { var b = document.querySelector("button"); b.onclick= function() { b.setAttribute("name", "helloButton"); b.setAttribute("disabled", ""); } } </script> Если я использую код в программе просто, то он работает. Но если я вставляю его в начале функции, то не срабатывает. Видимо я не понимаю какой то принцип действия Код (Javascript): function AjaxFormRequest(result_id,form_id,url) { window.onload = function () { var b = document.querySelector("button"); b.onclick= function() { b.setAttribute("name", "helloButton"); b.setAttribute("disabled", ""); } }
Даже так, alert не срабатывает. Не понимаю. Код (Javascript): alert ("222"); jQuery.ajax ({ url: url, type: "POST", dataType: "html", data: jQuery("#"+form_id).serialize(), // timeout: 6000, success: function(response) { alert ("123"); Проблему решил сам. script находился не в разделе body