Как добавить функцию обратного вызова для .submit () в Javascript? - PullRequest
0 голосов
/ 17 августа 2010

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

Любая своевременная помощь будет высоко ценится!

Ответы [ 3 ]

2 голосов
/ 17 августа 2010

Если вы выполняете полную отправку, а не отправку AJAX, то страница, отображаемая впоследствии, отличается от той, с которой была отправлена ​​форма.Следовательно, идентификатор выбранного элемента не будет доступен на второй странице.

Во время обработки отправителя необходимо сохранить идентификатор выбранного элемента (вероятно, это должен быть уникальный идентификаторсвоего рода) в скрытом поле формы.

Когда страница обновляется, она должна теперь иметь уникальный доступный идентификатор (вероятно, помещенный в то же скрытое поле формы с помощью кода на стороне сервера) и JavaScriptФункция может считывать это значение для управления прокруткой.

Имеет ли это смысл?

Если вы обновите свой вопрос, включив в него пример кода, то я мог бы уточнить это.

0 голосов
/ 17 августа 2010

Это было бы проще сделать в ajax, однако, если вам нужно сделать это как обратную передачу, вам нужно прикрепить событие к событию загрузки тела и отправить некоторые данные с обратной передачей, которые идентифицируют, что страница загружена какчасть сообщения назад, а не загрузка новой страницы.

например, создайте скрытый элемент управления на веб-странице, а при обратной передаче задайте ему значение, при проверке обратной передачи проверьте, имеет ли этот скрытый элемент управления значение иесли это так, запустите ваш код scorll.

0 голосов
/ 17 августа 2010

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

Если, с другой стороны, вы отправляете форму и обновляете часть страницы с помощью ajax, то, в зависимости от используемой вами структуры, вы будете искать ловушку обратного вызова, например onSuccess и т. Д. отправить функцию

...