0

HTML

<form id="create-template" class="form" action="" method="post">
    <p class="_50">
        <label for="t-name">Template name</label>
        <input type="text" name="t-name" class="required"/>
    </p>
    <p class="_100">
        <label for="t-html">Template HTML</label>
        <textarea id="t-html" name="t-html" class="required" rows="10" cols="40"></textarea>
    </p>
    <div class="block-actions">
        <ul class="actions-left">
            <li><a class="button red" id="reset-template" href="javascript:void(0);">Clear</a></li>
        </ul>
        <ul class="actions-right">
            <li><div id="preview"><input type="submit" class="button" value="Preview template"></div></li>
            <li><input type="submit" class="button" value="Create template"></li>
        </ul>
    </div>
</form>

JavaScript:

$("#preview").click(function() {
        $('#create-template').submit(function() {
            window.open('', 'formpopup', 'width=400,height=400,resizeable,scrollbars');
            this.target = 'formpopup';
        });
    });

押すPreview templateとポップアップウィンドウが開き、テンプレートのプレビューが表示されます。正解です。

テンプレートをプレビューした後、ページを押すCreate templateとポップアップが表示されます。これは正しくありません。

この問題は、テンプレートをプレビューするときにのみ発生します。Create templateテンプレートをプレビューしない限り、同じページでフォームを送信します。

preview templateとの競合を防ぐにはどうすればよいcreate templateですか?

4

1 に答える 1

0

この行は、ポップアップウィンドウに送信するようにフォームに指示しています。

this.target = 'formpopup';

次のように変更します。

this.target = window.opener;

送信後、ポップアップを閉じることをお勧めします。これを行うには、次の行を追加します。

formpopup.close();
于 2012-05-11T19:43:54.550 に答える