Intereting Posts
Простой HTML DOM Parser – отправлять переменные сообщения PHP: обработка специальных символов с помощью iconv Как передать переменную как ключ $ _POST в PHP? Есть ли функция PHP для удаления всех / всех пар ключ / значение, которые имеют определенное значение из массива? Получить время истечения срока действия элемента memcache в php? Автозагрузка композитора PHP – Безопасный способ загрузки больших файлов? Вычисление отношения размера изображения для изменения размера Предупреждение: spl_object_hash () ожидает, что параметр 1 будет объектом, с сообщением Как загрузить параметры конфигурации Symfony из базы данных (Doctrine) удаление всех символов из строки, оставляя номера Как использовать одни и те же модели в разных модулях в Zend Framework? PHP – нужен cron для обработки обратного сайта при регистрации пользователя … (или процесс fork) Как добавить пользовательские помощники вида в Zend Framework 2 Как мы можем создать довольно безопасный хэш пароля в PHP?

Почему я вижу значение «undefined» на экране при отправке формы в jQuery Mobile?

Это моя страница contactus.html. Я отправляю на php-страницу на сервере, которая должна взять информацию и отправить электронное письмо вместе с благодарностью. Когда я передаю форму, все, что я вижу, является «неопределенным» на экране, хотя я могу получить электронное письмо.

<!DOCTYPE html> <html> <head> <title>Contact Us</title> <link rel="stylesheet" href="css/latestjquerymobile.css" /> <link rel="stylesheet" type="text/css" href="css/jquery.mobile.simpledialog.min.css" /> <script type="text/javascript" src="js/jquery-1.6.1.min.js"></script> <script type="text/javascript" src="js/latestjquerymobile.js"></script> <script type="text/javascript" src="js/jquery.mobile.simpledialog.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $("#contactus").submit(function(event) { alert("page submitted"); }) }); </script> </head> <body> <div data-role="page" data-theme="e" id="contactus"> <div data-role="header" data-position="fixed"> <h1>Contact Us</h1> <a href="home.html" data-icon="back" class="ui-btn-left" data-ajax="false">Back</a> <a href="home.html" data-icon="home" class="ui-btn-right" data-ajax="false">Home</a> </div><!-- /header --> <div data-role="content"> <div align="center"> <form action="http://testsite.com/contactus.php" name="contactus" id="contactus" method="post"> <fieldset> <div data-role="fieldcontain"> <label for="name"> Name:</label> <input id="name" name="name" type="text" /> <label for="email">Email:</label> <input id="email" name="email" type="text" /> <label for="contact">Contact:</label> <input id="contact" name="contact" type="text" /> <label for="message">Message:</label> <textarea rows="4" cols="50" id="message" name="message"></textarea> <br /> <button type="submit" name="submit" value="submit-value">Send</button> </fieldset> </div> </form> <div><br><br> <a href="http://www.facebook.com/Apsession"><img src="images/facebook.png" border="0" /></a> <a href="http://twitter.com/ApsessionMobile"><img src="images/twitter.png" border="0" /></a> </div> </div> </div><!-- /content --> </div><!-- /page --> </body> </html> 

Это код для contactus.php на сервере

 <?php $ToEmail = 'test@testemail.com'; $EmailSubject = 'Contact Form Submission from testsite.com'; $mailheader = "From: ".$_POST["email"]."\r\n"; $mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; $MESSAGE_BODY = "Name: ".$_POST["name"]."<br>"; $MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>"; $MESSAGE_BODY .= "Contact: ".$_POST["contact"]."<br>"; $MESSAGE_BODY .= "Message: ".$_POST["message"]."<br>"; mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); ?> <html> <body> THANK YOU </body> </html> 

Solutions Collecting From Web of "Почему я вижу значение «undefined» на экране при отправке формы в jQuery Mobile?"

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

Вам нужно сделать пару вещей:

  1. Предотвратите действие по умолчанию (т. Е. Представление)
  2. Сериализуйте данные своей формы и отправьте ее через ajax.

Таким образом, в коде он будет выглядеть примерно так:

 $(document).ready(function() { //Cache DOM reference var form = $("#contactus"); form.submit(function(event) { //Prevent the form from regular (non-js) submission event.preventDefault(); //Serialize your data, using jQuery to make it easer var data = form.serialize(); //Submit via ajax $.post( form.attr('action'), data, function(response) { //You should modify your PHP to return a success or error code, then //handle appropriately here - eg if (response === 'success") {... } ); }); }); 

Причина, по которой вы получаете неопределенное значение, заключается в том, что вы отправляете сообщение на недействительную мобильную страницу jQuery. Поэтому убедитесь, что сервер возвращает допустимую HTML-страницу jquery mobile.

  1. Создайте свою мобильную форму jquery

  2. Установите атрибут action="/mobile.html" и method="post" (или получите)

  3. Затем убедитесь, что страница mobile.html (или все, что вы хотите назвать) возвращает действительную jQuery мобильную HTML-страницу.

Если вы не знаете, какая действительная jQuery мобильная HTML-страница, проверьте веб-сайт jquery mobile.

 <script type="text/javascript"> $(document).ready(function() { $("#contactus").submit(function(event) { alert("page submitted"); }) }); </script> 

Вам не нужно использовать выше JS-кодирование. Просто используйте встроенную кнопку «Отправить». И проверьте следующую ссылку

http://jquerymobile.com/test/docs/forms/forms-sample.html