Ajax表单在android上不起作用

时间:2014-06-27 03:40:02

标签: javascript php android jquery ajax

我使用jQuery& amp;创建了一个 Ajax联系表单PHP 即可。它适用于IE,FF,Chrome,Opera,Safari,ios ...... 但不能在Android上运行。当我点击按钮时,它只显示"正在加载......"消息,不再运行。所以我想也许是因为Ajax。我在Android 4.2.2上使用Chrome。 这是javascript文件:

$(document).ready(function() {
$('#contactForm').submit(function() {

    // check form status
    if($(this).data('formstatus') !== 'submitting') {
        // Set variables
        var form = $(this),
        formData = form.serialize(),
        formUrl = 'php/contact.php',
        formMethod = form.attr('method'),
        responseAlert = $('#responseAlert');
        // Set form status to 'submitting'
        form.data('formstatus', 'submitting');
        // Show waiting alert
        responseAlert.hide().addClass('waiting-alert').text('Loading...').fadeIn(300);
        // Send data to server
        $.ajax({
            url: formUrl,
            type: formMethod,
            data: formData,
            success: function(data) {
                // Set variable
                var responseData = $.parseJSON(data),
                klass = '';

                //Check response Data
                switch(responseData.status) {
                    case 'error':
                        klass = 'error-alert';
                        break;

                    case 'success':
                        klass = 'success-alert';
                        break;
                }

                //Show response alert
                responseAlert.fadeOut(300, function() {
                    $(this).removeClass('waiting-alert').addClass(klass).text(responseData.alert).fadeIn(300, function() {                          
                        setTimeout(function() {
                            responseAlert.fadeOut(300, function() {
                                if (responseAlert.hasClass('success-alert')) {
                                    $('#name, #mail, #message').val('');
                                }
                                $(this).removeClass(klass);                                 
                                form.data('formstatus', 'idle');
                            });
                        }, 4000);
                    });
                }); 
            }
        });
    }
    // Prevent from submitting form
    return false;
});

});

这是我的php文件:

if($_SERVER['REQUEST_METHOD'] == "POST") {

    // Set recipient email address and subject
    $recipient = 'recipient@gmail.com'; 
    $subject = 'New message form Rainy Website';

    // Set variables sanitize input with filter_var()
    $name = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
    $mail = filter_var($_POST['mail'], FILTER_SANITIZE_EMAIL);
    $msg = filter_var($_POST['message'], FILTER_SANITIZE_STRING);

    // Validate input
    // check if input is empty
    if(empty($name) || empty($mail) || empty($msg)) {
        $status = 'error';
        $alert = 'Please fill out all the fields!';
        //echo 'You have to fill all the field!';
    } elseif(strlen($name) < 3) { // if name length < 3
        $status = 'error';
        $alert = 'Your name is too short!';
        //echo 'Your name is too short!';
    } elseif(!filter_var($mail, FILTER_VALIDATE_EMAIL)) { // validate email
        $status = 'error';
        $alert = 'Invalid email address!';
        //echo 'Invalid email!';
    } elseif(strlen($msg) < 10) { //if message length < 10 
        $status = 'error';
        $alert = 'Your message is too short! Please write something more!';
        //echo 'Your message is too short! Please write something more!';
    } else {
        $header = 'From: '.$mail."\r\n";
        // Send email
        $send_mail = mail($recipient, $subject, $msg, $header);

        // Check if email was sent successfully or not
        if(!$send_mail) {
            $status = 'error';
            $alert = 'Sorry, your email could not be sent! Please try again later!';
        } else {
            $status = 'success';
            $alert = 'Hi '.$name.'. Thank you for your email!';
        }
    }

    // Return JSON data
    $data = array(
            'status' => $status,
            'alert' => $alert
        );
    echo json_encode($data);
    exit;

} // End main If

请帮助我,谢谢!

0 个答案:

没有答案
相关问题