0

jQuery タブでフォーム ウィザードを作成しようとしています。

フォームの各ステップを個別のビューに表示し、jQuery/AJAX タブ オプションを介してそれぞれをロードすることは可能ですか? AJAX で部分フォームをロードすると、js、css などにアクセスする方法がありません。部分ファイルの「ヘッダー」がないためです。親ページから継承しているようには見えません。回避策として、すべてのフォームを 1 ページにまとめて、s でタブに分割しています<div>。これでうまくいきますが、js をオフにするとあまり意味がありません (ただし、アプリは js に依存しており、社内では js 対応のブラウザーでのみ使用されます)。

私は CodeIgniter を使用していますが、この質問はどの MVC フレームワークでも有効だと思います。

4

3 に答える 3

1

タブがiframeに読み込まれている場合を除き、タブは、それらを読み込んでいるページのjsとcssにアクセスできる必要があります。JSとCSSにアクセスできないという疑いを確認するためのテストを実行できますか?

于 2008-10-16T13:56:31.880 に答える
1

私は、独自の MVC フレームワークを使用して、jquery タブを使用して同様のアプリケーションを作成しています。「タブ内ブラウジング」を解決した方法は次のとおりです。

問題: 別のビューにフォームがあり、ajax を使用してタブに読み込まれます。

  jQuery(document).ready(function(){
    var tabs = jQuery("#tabs > ul").tabs().bind('tabsload', function( event, ui ){
      jQuery( 'form', ui.panel ).submit(function() {
        jQuery.ajax({
          type: 'post',
          url: $(this).attr('action'),
          data: $(this).serialize(),
          success: function( response ){
            if(response.match( /^http:\/\/.*$/ ))
            {
              tabs.tabs('url', ui.index, response );
              tabs.tabs('load', ui.index );
            }
          }
        });
        return false;
      });
    });

各タブロードの後、タブ コンテンツ内のフォームのデフォルトの送信イベントをオーバーライドします ( でアクセス可能ui.panel)。次に、フォームがシリアル化され、ajax 投稿として送信されます。応答が URL の場合は、タブの URL をそれに設定してリロードします。

お役に立てれば

于 2008-12-24T22:54:14.897 に答える
0

これで私が見つけた問題は、ほとんどの ajax データが URL ではなく text/html として送り返されていることでした。これは、それが表示されないことを意味し、「ターゲット」にアタッチすると、タブの読み込みイベントが読み込まれないため、送信ボタンへのバインディングは発生しません

于 2009-05-25T01:38:47.367 に答える