0

次のログイン スクリプトは、Internet Explorer では機能しません。元のページではなく、login.php に気を配り、エラー/成功メッセージを返します。この問題の説明または解決策をいただければ幸いです。

//ajax login

$(document).ready(function() {
    $('#result').hide();
    $('#submitOne').click(function(e) {
        e.preventDefault();


    var errors = '';
    var required = ' is required';
    var username = $('form #username').val();
    var password = $('form #password').val();

    if (username == '') {
        errors += '<p> A username' + required + '</p>';
    }

    if (password == '') {
        errors += '<p> A password' + required + '</p>';
    }

    if (errors !== '') {
        $('form #result').removeClass().addClass('error').html('<strong>Please correct the errors below.</strong>' + errors).fadeIn('slow');
    }
    else {
        $('form #result').removeClass().addClass('loading').html('<strong>Working...</strong>').fadeIn('slow');
        var formData = $('form').serialize();
        submitForm(formData);
    }
});
});

function submitForm(formData)
{

    $.ajax
({

    type: 'POST',
    url: 'login.php',
    data: formData,
    dataType: 'json',
    cache: false,
    timeout: 10000,
    success: function(data) 
                {
                    $('form #result').removeClass().addClass((data.error === true) ? 'error' : 'success').html(data.msg).fadeIn('slow');


                    if($('form #result').hasClass('success'))
                    {
                        setTimeout("window.location.replace('admin.php')", 2000);

                    }
                },
    error: function(XMLhttpRequest, textStatus, errorThrown)
                {
                    $('form #result').removeClass().addClass('error')
                    .html('<p>There was a <strong> ' + errorThrown + ' </strong> error due to a <strong>' + textStatus + '</strong> condition </p>').fadeIn('slow');
                },
    complete: function(XMLhttpRequest, status)
    {
        $('form')[0].reset();
    }
});

};

ありがとうございます!

4

1 に答える 1

0

フォームはajaxではなく正常に送信されているようです。その場合は、次のことを試してください。

.....
$('#submitOne').click(function(e) {
    if (e.preventDefault) { 
       e.preventDefault(); 
    } 
    else { e.returnValue = false; } 
    //rest of your code
于 2012-07-27T05:44:43.203 に答える