Как отключить кнопку сохранения Jquery на первом клике
Я использую приглашение jQuery, чтобы предложить пользователю сохранить. Таким образом, пользователь нажимает кнопку "Сохранить", отображается запрос Jquery и спрашивает, уверен ли пользователь, хочет ли он сохранить изменения. Проблема в том, что пользователь может несколько раз нажать на кнопку приглашения jQuery Save, прежде чем приглашение закроется. В результате моя подпрограмма сохранения запускается один раз при каждом нажатии кнопки сохранения, что приводит к дублированию записей в базе данных. Мне нужно отключить кнопку сохранения подсказки при первом нажатии или просто закрыть окно подсказки при первом нажатии, чтобы предотвратить многократное сохранение. Как я могу это сделать?
Код клиента:
$.prompt("Are you sure you want to save? You will not be able to change your decision after it's been saved.", {
title: "Save?",
buttons: { "Save": true, "Cancel": false },
submit: function (e, v, m, f) {
if (v) {
response = saveUpdates(LoanDetails);
}
}
});
2 ответа
Я создал скрипку здесь: http://jsfiddle.net/smurphy/4fqjR/
Решение немного запутанное. Я думал, что будет более простой способ сделать это, но после просмотра документации я не могу найти никакой встроенной функции.
Вот код:
submit: function (value, message) {
if (value) {
$(message.prevObject)
.find('button[value="true"]')
.attr('disabled', true);
//TODO: perform save
//response = saveUpdates(LoanDetails);
}
}
message
Параметр является ссылкой на текстовое описание, поэтому вы можете найти кнопку, перемещаясь по DOM с этой начальной точки.
Попробуйте использовать глобальную переменную в качестве флага или отключите кнопку приглашения (если вы используете кнопку для вызова запроса) $("#promptbutton"). Prop("disabled",true);
Редактировать:
Более простое решение - просто закрыть приглашение прямо перед вызовом функции saveUpdates или в начале функции:
jQuery.prompt.close();