У меня есть диалоговая форма jQuery, которая позволяет пользователю сохранять заметки. Вот сценарии:Удалить несохраненный текст из диалогового окна jquery
- пользователь открывает диалоговое окно в первый раз и добавляет примечание (когда они вновь открыть диалоговое окно новое примечание показывает вверх)
- Пользователь открывает диалоговое окно, типа что-то, то щелчки отменить (когда они снова открывают диалог, заметка отображается как сохраненная на шаге 1, которая хороша)
- Пользователь открывает диалоговое окно и обновляет заметку (при повторном открытии диалога заметка изменилась по желанию)
- Пользователь открывает диалог и клики отменить (теперь, когда они снова открывают диалог, примечание возвращает обратно сохраненное значение с шага 1)
Таким образом, проблема возникает, когда пользователь обновляет заметку, а затем открывает диалоговое окно и отменяет аннулирование. Форма возвращается к первому сохранению. Вот сценарий:
jQuery(function() {
var originalContent;
jQuery("#dialog-form").dialog({
autoOpen: false,
resizable: false,
height: 480,
width: 460,
modal: true,
buttons: {
"Save": function() {
jQuery(".edit_user_property").submit();
jQuery("#dialog-form").dialog('close');
},
"Cancel": function(event, ui) {
jQuery("#dialog-form").html(originalContent).dialog('close');
},
},
open: function(event, ui) {
originalContent = jQuery("#dialog-form").html();
},
}),
jQuery('.ui-dialog-titlebar-close').click(function() {
originalContent = jQuery("#dialog-form").html();
jQuery(".edit_user_property").submit();
})
});
Я пытаюсь сохранить текущее состояние, как описано здесь https://stackoverflow.com/a/8969084/2074243 затем передать его, когда пользователь отменяет. Я пытался обновить свою переменную при изменении и отправке, но не работал. Кажется, что переменная на один шаг отстает. Мой диалог открывается ссылкой link_to_function:
<%=link_to_function("Notes", 'jQuery("#dialog-form").dialog("open")' %>
если это важно. Кроме того, я запускаю Rails 2.3.17, таким образом, использование jQuery против $. Кроме того, здесь форма, если она помогает:
<div id="dialog-form" title="Notes";">
<form action="/properties/add_notes" class="edit_user_property" id="edit_user_property_108458" method="post" onsubmit="new Ajax.Request('/properties/200465/add_notes', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); return false;"><div style="margin:0;padding:0;display:inline"><input name="_method" type="hidden" value="put" /><input name="authenticity_token" type="hidden" value="6/D6syvFo5nuLxla9dzcIadK5NbYxpPGKqilOwT+7Xw=" /></div>
<textarea id="user_property_notes" name="user_property[notes]" placeholder="Add notes" rows="20">Great property right</textarea>
</form>
</div>
несколько вопросов - Отмена должна быть «Отмена», и вам не хватает # вашего селектора в функции отмены. Кроме того, это не похоже, что вы обновляете переменную originalContent в функции щелчка '.ui-dialog-titlebar-close'. – Jason
Я обновил сценарий. Все еще есть те же проблемы. Любые другие предложения. Спасибо –