Я пишу мобильное приложение jquery и хочу отправить форму, и после отправки у меня совсем другая страница.как? - PullRequest
0 голосов
/ 25 февраля 2012

Я только начал работать с jquery mobile, и дела идут гладко, но я врезался в стену. У меня есть форма, которую я пытаюсь отправить (опубликовать), и после отправки формы я бы хотел, чтобы телефон вел себя так же, как браузер. Я хочу, чтобы он действительно перешел на указанную мной страницу.

Вот сценарий

Я на начальной странице. На этой вводной странице есть 2 разных "jquery мобильных страницы". Под "мобильными страницами jquery" я говорю о 2 разных

<div id="some_page"  data-role="page">

Первая из этих двух страниц - страница тизера. Он показывает некоторую информацию, которую пользователь хочет видеть, но не всю. URL (идентификатор div) для первой страницы: bla.com/intro.php#first

Вторая из этих двух страниц - простая страница регистрации. Эта страница регистрации содержит форму. URL (или идентификатор div) для второй страницы: bla.com/intro.php#second Форма выглядит примерно так:

 72  <form data-ajax="false" action="#" id="signup" method="post">
 73     <input type="hidden" name="leadID" id="leadID" value="<?=$_GET['id']?>" />
 74     <input type="hidden" name="action" id="action" value="validate" />
 75     <input type="hidden" name="blaID" id="blaID" value="<?=$propertyID?>" /    >
 77     <ul id="regList" style="margin: 15px 2px 17px;">
 78        <li>
 79            <input type="text" placeholder="First Name*" id="firstName"
 80          </li>
 81     </ul>
 82   </form>

Форма отправляется, отправка отправляется, а данные публикуются. Я знаю это, потому что я использую инструменты разработчика Chrome для проверки отправки сообщения.

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

 10     $('.submit').click(function(e){
 11 
 12     var isValid;
 13     isValid = validateSignupFields($(this).attr('entry'));
 14 
 15     if( isValid === true )
 16     {
 17         //$('#signup').submit();
 18         $.mobile.changePage(
 19         {
 20             url: "fullInformation.php",
 21             changeHash: true,
 22             reloadPage: true,
 23             type: "post",
 24             data: $("signup").serialize()
 25         });
 26     }
 27     
 28     }); // end signupBtn click

Как я говорил ранее, страница отправляется, а следующая страница загружается, но URL-адрес не изменяется. Происходит анимация, а в адресной строке по-прежнему написано bla.com # second. Кроме того, вся страница fullInformation.php перемешана, и стиль отсутствует. Мне интересно, как я могу отправить страницу и заставить ее работать как браузер и просто перейти к следующему URL-адресу вместо того, чтобы остаться на том же URL-адресе. Спасибо!

1 Ответ

1 голос
/ 25 февраля 2012

Отсутствует обязательный аргумент to (первый аргумент):

$.mobile.changePage( "fullInformation.php", {
    type: "post", 
    data: $("signup").serialize()
});

Также замените url на dataUrl

см. документы

...