Можно ли заблокировать страницу, когда пользователь нажимает на ссылку, и включить ее только после того, как ответ вернется с сервера.
Недавно у меня возникла проблема, когда на странице несколько раз нажимали ссылку, что приводило к двум одновременным изменениям.
Проблема заключалась в том, что страница позволяла многократную отправку. Я уже решил это на стороне сервера, используя Struts saveToken () и isValidToken (), чтобы предотвратить это снова. Это обеспечит получение нескольких отправленных сообщений, а второе не будет обработано.
Теперь проблема, с которой я столкнулся, заключается в том, что если пользователь дважды щелкает ссылку отправки, первый запрос действителен, а второй - нет. Пользователь перенаправляется на страницу с ошибкой, не понимая, что первый запрос прошел.
Я думаю, что решение состоит в том, чтобы заблокировать / отключить ссылку, когда она нажата. Я знаю, что вы можете использовать javascript, чтобы отключить ссылку, но я хотел бы использовать одно из модальных диалоговых окон AJAXy, которые я видел на нескольких сайтах. Обычно при нажатии на ссылку появляется всплывающее диалоговое окно с сообщением «Пожалуйста, подождите ..». Фон исчезает, и пользователь ничего не может сделать, пока ответ не вернется с сервера. Большинство примеров, которые я вижу, похоже на Ajax. Моя страница не использует Ajax.
Какой самый простой способ получить это модальное диалоговое окно? Я искал вокруг и есть несколько плагинов, доступных для JQuery, но, учитывая, что я новичок в этом, я не совсем понимаю это. Может кто-нибудь показать мне пример того, как сделать это с помощью Jquery?
Спасибо
EDIT
Возьмем, к примеру,
//CONTROLLING EVENTS IN jQuery
$(document).ready(function(){
//LOADING POPUP
//Click the button event!
$("#button").click(function(){
//centering with css
centerPopup();
//load popup
loadPopup();
});
//CLOSING POPUP
//Click the x event!
$("#popupContactClose").click(function(){
disablePopup();
});
//Click out event!
$("#backgroundPopup").click(function(){
disablePopup();
});
//Press Escape event!
$(document).keypress(function(e){
if(e.keyCode==27 && popupStatus==1){
disablePopup();
}
});
});
Я бы хотел, чтобы эти события запускались при нажатии на ссылку. Сама ссылка указывает на другую функцию JavaScript. т.е.
<a href="javascript:submitform();">confirm</a>
Как я могу вызвать биты jquery внутри функции javascript submitform ()? Предпочтительнее после завершения submitform ().