2016-04-22 2 views
0

У меня есть форму, использующую jqueryvalidation, и в представлении проверяются. Когда это произойдет, он отключает кнопку и изменяет ее на «Отправка ...», затем отправляет форму.Отключить кнопку отправки, но все равно получить двойные сообщения

Проблема заключается в том, что кнопка отключена, но если вы продолжаете нажимать на нее, она будет подавать несколько раз, в результате чего количество Х данных поступает в базу данных.

Это код, который обрабатывает Посылаем:

submitHandler: function(form) { 
    $('#SaveTraining').val('Submitting...'); 
    $('SaveTraining', this).attr('disabled', 'disabled'); 
    form.submit(); 
    // return false; 
} 

Здесь кнопка:

<input type="submit" id="SaveTraining" name="SaveTraining" class="btn btn-success" <cfif rc.candidateActive EQ 2>disabled</cfif> value="Save Training"> 

Кнопка имеет немного CF встроенный, чтобы отобразить или не отображаться, если кандидата активен.

Есть ли другой рекомендуемый метод, чтобы эта кнопка нажала только один раз?

+1

Вам не хватает '#' во втором '$ ('SaveTraining')'. – Barmar

+0

Это ошибка копирования или в реальном коде? – Barmar

+0

@Barmar Я добавил # и все еще имею те же результаты. Это также в реальном коде. – weggie

ответ

1

У вас есть опечатка в коде, и я не верю, что , this необходимо либо:

submitHandler: function(form) { 
    $('#SaveTraining').val('Submitting...'); 
    $('#SaveTraining').attr('disabled', 'disabled'); 
    form.submit(); 
    // return false; 
} 

Но, как вы работаете с представлением формы есть альтернативные способы для этого представить обработчик будет называться (например, попадание в форму), которые вы также можете заблокировать. Вы можете сделать это с помощью глобальной переменной, такой как приведенная ниже.

+0

Удаление «, это» и добавление «#SaveTraining», похоже, это было сделано. – weggie

+0

@weggie 'jQuery' читает селектор $ (...) справа налево, так что он смотрел в' this' for '#SaveTraining', который он не мог найти. – MattSizzle

+0

Нечетный, я положил это в свой ответ, чтобы заставить его работать, но он был отключен. Еще раз спасибо @mattSizzle – weggie

Смежные вопросы