Нужно, чтобы диалоговое окно "jQuery UI" прокручивалось до самого верха при отправке формы внутри iframe - PullRequest
2 голосов
/ 23 ноября 2011

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

Я пытался использовать onload="window.parent.scroll(0,0);" в тегах страниц с благодарностями и ошибками, но это ничего не дало.

Также пробовал:

<script type="text/javascript">
    $("#orderform").onsubmit(function() {
     $("#dialog").window.scrollTo(0,0);
     alert('triggered');
    });
</script>

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

Тестовый сервер, на котором в данный момент размещается сайт: http://kinnill.com/dev/bluehydrangea/

1 Ответ

6 голосов
/ 23 ноября 2011

Не уверен, какую страницу вы хотите прокрутить наверх. Диалоговое окно, страница, на которой находится диалоговое окно, или страница, которая находится в iframe?

После просмотра вашего кода я считаю, что это тот, который вам нужен:

Если в диалоговом окне есть прокручиваемый элемент, который уже прокручивается после изменения iframe, то вы захотите настроить таргетинг на любой элемент с «overflow: auto». Если этим элементом является #dialog, сделайте это на странице iframe, в которой находится форма (которая в вашем случае выглядит как form.php):

<script type="text/javascript">
  $(function(){
    $("#orderform").submit(function() {//note: in jquery the onsubmit event is called "submit"
       $('#dialog', window.parent.document).scrollTop(0);//target #dialog from the parent window
       alert('triggered');
    });
  });
</script>

Другие возможные решения для справки для других:

Если на странице есть диалоговое окно, выполните следующее:

Если форма находится в iframe, тогда код должен быть в iframe. Затем вам нужно будет изменить код, чтобы настроить таргетинг на родительское окно.

Это должно быть то, что вы ищете:

<script type="text/javascript">
    $("#orderform").submit(function() {
     $(window.parent).scrollTop(0);
     alert('triggered');
    });
</script>

Если страница, которую вы хотите прокрутить, является страницей благодарности или страницей с ошибками, поместите следующее на страницах с благодарностями и ошибками: (вам понадобится jquery на страницах с благодарностями и ошибками)

<script type="text/javascript">
    $(function(){
       $(window).scrollTop(0);
    });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...