2013-10-25 3 views
-2
function save_team() 
{ 
     $('#saveBtn').unbind('click'); 

     $.ajax(
     {   
     type: "POST", 
     url: "save.php", 
     data: { team_Array : t_pls }, 

      success: function(data) { 
       $('#msg').text(data); 
      } 
     });  
} 

<input type="submit" value="SAVE" id="saveBtn" onclick="save_team()"> 

Я искал, нашел некоторые решения, но они не работают. как предотвратить двойное срабатывание кнопки SAVE/onclick? Я пытаюсь сохранить команду из 10 игроков в mysql. Если команда такая же, и событие onclick происходит, ничего не должно произойти. Кто-то предложил мне сделать это в PHP-скрипте (в моем случае save.php). Но я не мог придумать идеальное решение.как остановить onclick от стрельбы дважды с помощью javascript

Я думаю, что я должен сделать это, используя php. Когда команда не изменяется, событие onclick должно быть отключено, и когда команда изменяет, должен быть сделан ajax-вызов, и команда должна быть сохранена в БД. Итак, one() вызывает или отключает attr. не поможет здесь. PLS предложить некоторые php скрипт помощи.

+0

Вы можете отключить эту кнопку один раз ему был нажат – AlexP

+0

Привязать обработчик с помощью ['.one()'] (http://api.jquery.com/one/), чтобы он срабатывал только один раз – billyonecan

+0

Метод jQuery one() –

ответ

1

Простое решение - отключить кнопку и включить ее при обратном вызове.

$('#saveBtn').attr('disabled','disabled') 
2

для отключения кнопки.

$('#Btn').attr('disabled',true); 
1

Я предлагаю отключить кнопку, как только она будет нажата в первый раз. Перед вызовом ajax. Мы должны быть осторожны, чтобы кнопка была успешной, а также ошибки. Вы также можете использовать полный вызов AJAX, чтобы включить кнопку.

  { 
        $('#btnId').attr("disabled", true); 
        // make the AJAX call.. 
        $('#btnId').attr("disabled", false); 
      } 
1

Использование JQuery один:

$("#saveBtn").one("click", function() { 
    save_team(); 
}); 
2

HTML

<input type="button" value="SAVE" id="saveBtn" onclick="save_team()"> 

JavaScript

$('#saveBtn').attr('disabled','disabled') 

Отключить кнопку и включить, когда ответ возвращается из ajax.

1

Я предлагаю сделать три вещи. Сначала отключили кнопку после ее нажатия.

$('#saveBtn').attr('disabled','disabled'); 

вторых связать обработчик щелчка, используя один()

$("#saveBtn").one('click', save_team); 

В-третьих, это ставит бизнес-логику в вашем пользовательском интерфейсе, так что если он должен быть там, то проверки должны быть продублированы в РНР на сервер.

0

Отключите кнопку, а при успешном запуске или ошибке включите ее.

1

Вы должны отменить автоматическую отправку формы возвращающегося false в вашей функции и возвращающийся его в значении onclick атрибута тоже:

function save_team() 
{ 
    //$('#saveBtn').unbind('click'); I think this line is not needed anymore 
    $.ajax(
    {   
     type: "POST", 
     url: "save.php", 
     data: { team_Array : t_pls }, 

     success: function(data) { 
      $('#msg').text(data); 
     } 
    }); 
    return false; 
} 

<input type="submit" value="SAVE" id="saveBtn" onclick="return save_team()"> 
Смежные вопросы