Jquery Mobile - Получение результатов AJAX - PullRequest
2 голосов
/ 08 марта 2012

Попытка сделать простое веб-приложение с помощью jquery mobile.Я собрал простую форму для входа в систему с результатами ajax для отображения.Проблема в том, что мой ajax не получает результат, даже когда я предупреждаю о том, что URL действителен.Есть ли что-то особенное, что мне нужно сделать, используя jquery mobile?

Любые мысли / ответы приветствуются!

Вот HTML-код:

    <div data-role="page" id="login" data-theme="a" data-add-back-btn="true">
        <div data-role="header">
            <h2>Log in</h2>
        </div>
            <div data-role="content" data-theme="a" data-add-back-btn="true">   
                <form action="mobilelogin.php" method="post">
                  Email: <input type="text" name="email" id="useremail">
                  Password:  <input type="password" name="password" id="userpassword">
                <input type="submit" value="Enter">
                </form>
                <div id="loginresult"></div>
            </div>
        <div data-role="footer"><h4>Chris Sherwood Design 2012</h4></div>
    </div>

Файл JS:

$(document).ready(function() {

  $('form').submit(function() {
  var emailchecker = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
  var email = $("#useremail").val();
  var userpassword = $("#userpassword").val();
  var checklength = userpassword.length;

  if(email == ""){
    alert('Please fill in email field');
     return false;
  }else if(userpassword == ""){
    alert('Please fill in password field');
     return false;
  }else if((!emailchecker.test(email))){
    alert('Please use a valid email');
     return false;  
  }else if(checklength < 6 || checklength > 6){
    alert('Password must be six characters');
     return false; 
  }else{
  var datastring = $(this).serialize();
  alert(datastring);
  return false;
        $.ajax({
        type: "POST",
        url: "mobilelogin.php",
        data: datastring,
        success: function(data){
        $("#loginresult").html(data);
        }
        });

  }

  });

PHP

<?php
echo 'nothing special here...';
?>

1 Ответ

2 голосов
/ 08 марта 2012

Из вашего кода:

return false;
    $.ajax({
    type: "POST",
    url: "mobilelogin.php",
    data: datastring,
    success: function(data){
    $("#loginresult").html(data);
    }
    });

Вы возвращаете false перед запросом ajax.

EDIT (предполагается, что это была простая ошибка, добавили дополнительные пояснения)

Вам нужно будет либо сдвинуть возвращаемое значение false;ниже вызова ajax () или используйте объект события следующим образом:

$('form').submit(function(e) {
    e.preventDefault();

Проблема с использованием только возврата false;в том случае, если перед чем-то возникнет ошибка, это не остановит действие по умолчанию.Так что, если ваш ajax запрос на ошибку, он пропустит возвращение false;и начните загружать страницу действий.

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