0

ある種の長いフォームを送信しようとしていますが、それは複数の「ページ」に分散されており、「送信」ボタンはフォームを送信しません。

<div data-role="page">
    <form action="save_data.php">
    <input type="text">
    <a href="#two">next</a>
</div>
<div data-role="page" id="#two">
    <input type="text">         
    <input type="text">
    <a href="#three">next</a>
</div>
<div data-role="page" id="#three">
    <input type="text">         
    <input type="submit">
</div>

送信と同じページに配置<form action="save_data.php">すると、データが送信されます。それ以外の場合は何も起こりません。

実際にはすべて同じファイルですが、同じ「ページ」内でのみフォームを送信できますか?

ありがとう

4

1 に答える 1

2

最後のフォームページを除くすべての場合、次のようにします。

var $lastPageForm = $('.last-page').find('form');
$('.not-last-page').find('form').on('submit', function () {
    $.each($(this).find('input'), function () {
        $lastPageForm.append($(this).clone());
    });
    return false;
});

これinputにより、最初のフォームでそれぞれのクローンが作成され、それらのクローンが最後のフォームに追加されます。そうすれば、すべてのフォームからのすべての入力が最後のページで一度に送信されます。

このコードは、次のようなレイアウトの複数ページのテンプレートを想定しています。

<div class="not-last-page" data-role="page">
    <form>
        <input type="text">
        <a href="#two">next</a>
    </form>
</div>
<div class="not-last-page" data-role="page" id="two">
    <form>
        <input type="text">
        <a href="#three">next</a>
    </form>
</div>
<div class="last-page" data-role="page" id="three">
    <form action="save_data.php">
        <input type="text">
        <input type="submit" />
    </form>
</div>
于 2012-09-12T19:00:33.790 に答える