Могу ли я заставить Jquery Dirtyform увидеть форму как грязную? - PullRequest
3 голосов
/ 29 апреля 2011

Мы используем плагин JQuery dirtyform для отображения предупреждения пользователям, если они изменяют данные формы и пытаются уйти со страницы, и это работает хорошо.

Еще одна вещь, которую я хотел бы сделать, - этозаставлять форму быть грязной при первой загрузке страницы.Я не могу понять, как это сделать - я пытался использовать javascript для изменения значений в полях формы, я пытался добавить «измененный» класс в поля формы, но ни один из них не вызывает диалоговое окно с предупреждением при навигациидалеко от страницы.

Есть ли способ сделать это?

ОТВЕТ:

$(document).ready(function() {
   $("form").dirty_form({includeHidden: true});
   $("a").dirty_stopper();

   $("#dummy").val("1");
   $("#dummy").blur();
});

и в html:

<input type="hidden" name="dummy" id="dummy" value="0" />

Ответы [ 3 ]

4 голосов
/ 29 апреля 2011
$("#myFormID").find("input").change();

Вам, очевидно, нужно будет изменить селекторы, но я думаю, что это то, что вы хотите.Он просто запускает событие «изменения» в jQuery (которое прослушивает Dirty Form) для выбранных элементов.

2 голосов
/ 10 июня 2011

Я решил это без использования скрытых полей, добавив эту функцию в плагин:

$.fn.set_form_dirty = function(){
    $(this).data("dirty", true);
};

Затем я вызываю это со страниц, которые я хочу запачкать с самого начала, добавив этот фрагмент кода(в этом случае все формы на странице устанавливаются грязными):

<script type="text/javascript">
    $(document).ready(function() {
        $("form").set_form_dirty();
    });
</script>
1 голос
/ 29 апреля 2011

Вы пытались применить к классу «измененный» для ввода?

При каждом изменении входного значения к нему добавляется «измененный» класс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...