Я пытаюсь создать веб-форму с поддержкой Ajax и создал простую страницу.На странице у меня есть div, который содержит значение, которое я хочу отредактировать.
У меня есть рабочий javascript для добавления текстового поля ввода вокруг содержимого div, в комплекте с кнопкой Save для отправки назад.к веб-серверу, но в отличие от примера , за которым я следую, я не хочу кнопку отмены, вместо этого я хочу, чтобы операция отмены была вызвана потерей фокуса в поле ввода.
Я добавил событие onblur в поле ввода текста, чтобы отменить операцию редактирования и вернуть форму в исходное неотредактированное состояние (а не сохранить изменения).
Проблема, с которой я столкнулся, заключается в том, чточто, когда я нажимаю кнопку «Сохранить», также запускается событие onblur поля ввода текста.Как я могу остановить это?
Функция редактирования (вызывается, когда пользователь нажимает на текст для редактирования) выглядит следующим образом:
function edit(obj)
{
Element.hide(obj);
var textarea = '<div id="'+obj.id+'_editor"><div class="fieldvalueedit"><input type="text" id="'+obj.id+'_edit" name="'+obj.id+'" rows="1" size="64" value="'+obj.innerHTML+'"></div>';
var button = '<div class="fieldvaluebuttons"><input id="'+obj.id+'_save" type="button" value="Save"/></div></div>';
new Insertion.After(obj, textarea+button);
document.getElementById(obj.id+'_edit').focus();
Event.observe(obj.id+'_save', 'click', function(){saveChanges(obj)}, false);
Event.observe(obj.id+'_edit', 'blur', function(){cleanUp(obj)}, false);
}