0

私は持っている

window.onload = function()
{
    $('form').submit(function()
    {
        return false;
    });
};

onload 関数内で、後で Shadowbox.open() を呼び出します。もちろん、私はオプションを渡しています。とにかく、私のフォームはページ全体を送信し、代わりに false を返しません。

Shadowbox に渡されたフォームのフォーム送信を処理する方法の実際の作業例を探していました。あなたが私に1つを指摘することができれば、それは素晴らしいことです.

ありがとうございました

4

1 に答える 1

1

あなたがしなければならないことは次のとおりです。

  1. iframe-player を使用します (シャドウボックスをダウンロードするときは、[外部サイトとページ] チェックボックスをオンにする必要があります)。
  2. フォームを実際に送信する前に iframe が存在することを確認するために、onFinish のコールバック関数を提供します。
  3. フォームの target-attribute をsb-playerに変更します(これは、shadowbox によって作成された iframe の名前です)

コード例 (シャドーボックスで Google 検索を実行します)

<script type="text/javascript">
Shadowbox.init();

$(function() 
  {
    $('form')
      .submit(function()
              {
                //reference to the form, needed in onFinish
                var me=this;

                Shadowbox.open({
                                  //we dont need to load a page
                                content: 'about:blank',
                                  //use the iframe-player
                                player:  'iframe',
                                height:  350,
                                width:   850,
                                options: {
                                          //send the form without 
                                          //triggering the submit-event
                                          //when the iframe is available
                                          onFinish:function()
                                                   {me.submit();}
                                         }
        });
        //set the iframe(the name is sb-player) as target of the form
          $(this).attr('target','sb-player');

        return false;
    });
});

</script>
<form action="http://google.de/search">
<input name="q" value="shadowbox">
<input type="submit">
</form>
于 2011-07-13T02:34:36.613 に答える