2012-03-06 11 views
3

認証ページを持つjQueryモバイルアプリケーションを作成しようとしています(つまり、ユーザーがユーザー名を入力するテキスト入力と送信ボタンを持つjqmダイアログ)。 Parseから引き出されたユーザー/アクセス権のリストに対してチェックされ、アクセスが許可されている場合、ダイアログは削除され、ユーザーはアプリケーションにアクセスできます)。私はその段階から私が長い道のりを築いていることを認識していますが、分かりましたが、ブランクモードでsimpledialog2プラグインを使用して、ダイアログをどのように見せたいかのモックアップを作成し、完全に機能するモジュールに拡張しようとしました。JQuery Mobileで認証問題を解決する

$(document).delegate('#opendialog', 'click', function() { 
    $('<div>').simpledialog2({ 
    mode: 'blank', 
    headerText: 'App Auth', 
    headerClose: true, 
    dialogAllow: true, 
    dialogForce: true, 
    blankContent : 
     "<p>Please enter your username:<br/></p>"+ 
     "<form><input/><br/>"+ 
     "<a data-role='button'>Submit</a></form>" 
    }) 
}) 

私は私のようなエラーが取得保管このコード延長しようとしていた「例外TypeError: 『を未定義には、』関数(評価...)ではない」と彼らのためにすべての原因を見つけることができませんでした。 私は正しい方法でこれに近づいていると誰かに教えてもらえますか?私は、ボタンwを使用して認証ページを作成しようとしました。入力モードはhttp://dev.jtsage.com/jQM-SimpleDialog/demos2/blankin.html#/jQM-SimpleDialog/demos2/button.html に記載されていますが、それは私のためにも機能しませんでした。どんな指導も大歓迎です。 :)

+0

は、いくつかのより多くの研究を行っていると私は、ダイアログを作成できることが判明していない場合は、動的認証ダイアログを作成して表示することができますボックスにはOpen test dialogを使用して認証します。しかし、私はこのダイアログをアプリケーションにすぐにポップアップしたいのです(つまり、ユーザーが認証なしでアプリケーションにアクセスすることはできません)。ありがとう:) – sm4491

+0

私は成功したことでこれを研究し続けてきました。 '$(window).load(function(){ window.showModalDialog(" Auth.html "); }を使ってエントリのダイアログをポップアップできました。 ); ' これはIEでのみ動作しSafariでは動作しないようです。 Simpledialog2を使用するような親ウィンドウもカバーしません。どんな助けも素晴らしいだろう! :) – sm4491

答えて

0

pagebeforechangeイベントにバインドして、ユーザーが認証されているかどうかを確認できます。

jQuery("body").live("pagebeforechange", function(e, data) { 
    if(typeof data.toPage !== 'string') 
     return; 
    if(!userIsAuthenticated) { 
     showAuthDialog(); 
     e.preventDefault(); 
     return false; 
    } 
}); 

A動的に生成されたダイアログは次のように表示することができます:

function showAuthDialog() { 
    var dialog = jQuery('<div data-role="dialog"> <div data-role="content"> <h1>MyAuthDialog</h1> <p>Your auth form here.</p></div> </div>'); 

    // bind events to auth form here 
    // ... 

    jQuery.mobile.pageContainer.append(dialog); 
    jQuery.mobile.changePage(dialog); 
} 
+0

返信いただきありがとうございます!私はしばらくの間、このプロジェクトを見るチャンスがなかった。しかし、私がしたら、あなたの方法を試してみるでしょう。再度、感謝します :) – sm4491

関連する問題