2012-07-27 102 views
0

以下登录脚本在Internet Explorer中不起作用。它关心我login.php并返回错误/成功消息,而不是在原始页面上。任何解释或解决这个问题将不胜感激。Jquery .ajax在ie中不工作

//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(); 
    } 
}); 

}; 

谢谢!

+2

如果'e.preventDefault();'并不妨碍形式从提交尝试'返回false ;' – Musa 2012-07-27 05:12:00

回答

0

看来你的形式与阿贾克斯正常,未提交,如果多数民众赞成的情况下,然后尝试:

..... 
$('#submitOne').click(function(e) { 
    if (e.preventDefault) { 
     e.preventDefault(); 
    } 
    else { e.returnValue = false; } 
    //rest of your code 
+0

它仍然带我到login.php显示文本:“{”error“:false,”msg“:”“ 欢迎来到jeremy! <\/h3>“}” – Jeremythuff 2012-07-27 21:33:42