代码之家  ›  专栏  ›  技术社区  ›  user501307

带有json的ajaxjquery不适用于IE

  •  0
  • user501307  · 技术社区  · 15 年前

    $(document).ready(function(){
     $('#signup-form').submit(function(){
    
      //check the form is not currently submitting
      if($(this).data('formstatus') !== 'submitting'){
    
       //setup variables
       var form = $(this),
        formData = form.serialize(),
        formUrl = form.attr('action'),
        formMethod = form.attr('method'),
        responseMsg = $('#form-response');
    
       //add status data to form
       form.data('formstatus','submitting');
    
       //show response message - waiting
       responseMsg.hide()
            .addClass('response-waiting')
            .text('Please Wait...')
            .fadeIn(200);
    
       //send data to server for validation
       $.ajax({
        url: formUrl,
        type: formMethod,
        data: formData,
        success:function(data){
    
         //setup variables
         var responseData = jQuery.parseJSON(data),
          klass = '';
    
         //response conditional
         switch(responseData.status){
          case 'error':
           klass = 'response-error';
          break;
          case 'success':
           klass = 'response-success';
          break;
         }
    
         //show reponse message
         responseMsg.fadeOut(200,function(){
          $(this).removeClass('response-waiting')
              .addClass(klass)
              .text(responseData.message)
              .fadeIn(200,function(){
               //set timeout to hide response message
               setTimeout(function(){
                responseMsg.fadeOut(200,function(){
                    $(this).removeClass(klass);
                 form.data('formstatus','idle');
                });
               },3000)
            });
         });
        }
       });
      }
    
      //prevent form from submitting
      return false;
     });
    });
    
    1 回复  |  直到 15 年前
        1
  •  1
  •   Amit Battan    15 年前

    试试这个

    var form = $(this),
    var formData = form.serialize(),
    var formUrl = form.attr('action'),
    var formMethod = form.attr('method'),
    var responseMsg = $('#form-response');
    

    没有var有时它在IE中工作