2016-10-22 10 views
0

私は私の学位のためのプロジェクトをやっています。このプロジェクトは南アフリカのケープタウンにある学校で実施される予定のグループプロジェクトです。あなたはGitHubでJewel Systemsと呼ばれるgit組織全体をチェックすることができます。jQuery insert beforeまたはbeforeメソッドが動作しない

プロジェクトは、基本的に、クラスの教師によるデバイスの予約や学生がデバイスを貸したいなど、デバイスのレンタルを追跡するシステムです。教師がレンタルするデバイスを多すぎると選択すると、エラーメッセージが表示され、ユーザーに通知されます。

私はプロジェクトのフロントエンド側で忙しく、2つのjQueryメソッドを動作させることはできません。それは前に働いていて、プロジェクトに1ヶ月も触れておらず、エラーメッセージが表示されなくなりました。 Firebugでコンソールをチェックしたところ、サーバーからのエラーメッセージが表示されました。

ので、ログイン画面が次のようになり、私はログイン画面で午前と言うことができます:ある Login Screen http://i64.tinypic.com/24det55.png

login.jsスクリプトのコード:

$(document).ready(function() { 

    if (typeof sessionStorage.email != "undefined") { 
    window.location = "/user"; 
    } else { 
    // $('.content .loading').fadeIn(1000); 
    // $('.content .loading').css('display', 'block'); 
    // $('.content .loading').delay(2000).fadeOut(1000); 
    // $('.content p.greeting').delay(5000).fadeIn(1000); 
    // $('.content p.greeting').delay(2000).fadeOut(1000); 
    // $('.content .panel').delay(10000).fadeIn(1000); 
    // $('.content .panel').fadeIn(1000); 
    } 

    $('.content .panel').fadeIn(1000); 

    $('form.loginForm').submit(function(event) { 
    var data = $(this).serializeArray(); 

    $.ajax({ 
     url: domain + 'testauth', 
     type: 'POST', 
     data: JSON.stringify({"username": data[0].value, "password" : data[1].value}), 
     contentType: 'application/json', 
     success: function(result, status, xhr) { 
     var user_data = result.data; 

     if (typeof(Storage) !== "undefined") { 
      sessionStorage.user_id = user_data.id; 
      sessionStorage.email = user_data.email; 
      sessionStorage.fname = user_data.fname; 
      sessionStorage.lname = user_data.lname; 
      sessionStorage.user_type = user_data.type; 
      sessionStorage.created_at = user_data.created_at; 
      $.get(domain + "user/" + user_data.id, function(data) { 
      data = data.data; 
      if (data.loaned[0] !== undefined) { 
       if (data.loaned.length > 1) { 
       sessionStorage.device_loaned = data.loaned[0].type + ":" + data.loaned[0].id + "#" + data.loaned[1].type + ":" + data.loaned[1].id; 
       } else if (data.loaned.length === 1) { 
       sessionStorage.device_loaned = data.loaned[0].type + ":" + data.loaned[0].id; 
       } 
      } else { 
       sessionStorage.device_loaned = null; 
      } 
      if (data.privileges.length > 1) { 
       sessionStorage.perm = data.privileges[0].type + "#" + data.privileges[1].type; 
      } else if (data.loaned.length === 1) { 
       sessionStorage.perm = data.privileges[0].type; 
      } 
      window.location = "/user"; 
      }); 
     } else { 
      $('.error-message').remove(); 
      var msg = $('<div class="alert alert-danger error-message"></div>').html("<strong>Oh snap!</strong> Your browser doesn't support local storage, please update your browser or download <a href='https://www.google.com/chrome/'>Google Chrome</a>/<a href='https://www.mozilla.org/en-US/firefox/new/'>Mozilla Firefox</a>."); 
      $(msg).insertBefore('.panel'); 
      event.preventDefault(); 
     } 
     }, 
     error: function(xhr, status, error) { 
     try { 
      var response = JSON.parse(xhr.responseText); 
      $('.error-message').remove(); 
      var msg = $('<div class="alert alert-danger error-message"></div>').html("<strong>Oh snap!</strong> The email/ID or password entered is incorrect, please try again."); 
      // $(msg).insertBefore('.panel'); 
      $('.panel').before(msg); 
     } catch (e) { 
      console.log(e); 
     } 
     }, 
    }); 
    event.preventDefault(); 
    }); 
}); 

私はそれがないだけであると信じていますエラーメッセージは機能していません。私は最初に問題がラップトップになる可能性があると考えました。なぜなら、最初にいくつかの問題に遭遇したので、別のマシンでシステムをテストしましたが、同じことをしたので、私のコードが間違っていると思っています。

私のウェブサイトはリンクサーバーからホストされています(このサーバーはJewel Systemsの組織にありますので、このサーバーを実行するにはgradleがインストールされている必要があります)。

+1

あなたのコードは動作しますが、別の場所に問題がある可能性があります。こちらの[jsfiddle example here](https://jsfiddle.net/42ukk4mv/)を参照してください。$のないmsgも動作しています – ainasiart

+0

そして、 sessionStorageは 'sessionStorage.setItem( 'key'、 'value')'です。 – ainasiart

+0

@ainasiartなぜそれは良いですか?はい、私は別のファイルにエラーが見つかりました。私は、ajaxが停止した後でエラーメッセージを削除しました。 –

答えて

2

股関節のあなたのMSGは多分あなたは

msg.insertBefore( 'パネルを。')を使用する必要があり、既にjQueryオブジェクト ようです。

+0

それは動作していないようでした。 –

0

エラーが別のファイルにありました。ここで、ajaxStopが発生したときにエラーメッセージが表示されなくなりました。

関連する問題