Aller au contenu principal

jQuery Mobile : multi-page avec formulaire

Fiche archivée. La technique décrite ici n’a plus cours sur un site actuel. La fiche reste en ligne pour qui maintient un ancien projet ; l’encadré en fin de page indique ce qui la remplace.

jQuery Mobile permettait de découper un long formulaire en plusieurs écrans dans un seul document HTML : chaque data-role="page" devient un écran, et les liens vers #two ou #three font passer de l’un à l’autre sans recharger la page. Les champs restent dans le même formulaire, envoyé en une fois à la fin.

HTML
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Formulaire</title>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile.structure-1.4.5.min.css" />
    <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>

    <div data-role="page" id="one">

        <div data-role="header">
            <h1>Titre Page 1</h1>
        </div>

        <div role="main" class="ui-content">
                <fieldset data-role="controlgroup">
                    <legend>Qui est absent</legend>

                    <div class="ui-controlgroup-controls ">

                        <div class="ui-radio">
                            <label for="radio-v-1a" class="ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-on ui-first-child">Laurent</label>
                            <input type="radio" name="radio-v-1" id="radio-v-1a" checked=""></div>

                        <div class="ui-radio">
                            <label for="radio-v-1b" class="ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-off ui-last-child">Nicolas</label>
                            <input type="radio" name="radio-v-1" id="radio-v-1b"></div>

                        <div class="ui-radio">
                            <label for="radio-v-1c" class="ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-off ui-last-child">Florence</label>
                            <input type="radio" name="radio-v-1" id="radio-v-1c"></div>

                    </div>
                </fieldset>


                <p><a href="#page_2" class="ui-btn ui-shadow ui-corner-all">Valider</a></p>
        </div>

    </div>


    <div data-role="page" id="page_2">

        <div data-role="header">
            <h1>Titre Page 2</h1>
        </div>
        <div role="main" class="ui-content">
            <fieldset data-role="controlgroup">
                    <legend>Qui est présent ?</legend>

                    <div class="ui-controlgroup-controls ">

                        <div class="ui-radio">
                            <label for="radio-v-2a" class="ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-on ui-first-child">Laurent</label>
                            <input type="radio" name="radio-v-2" id="radio-v-2a" checked=""></div>

                        <div class="ui-radio">
                            <label for="radio-v-2b" class="ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-off ui-last-child">Nicolas</label>
                            <input type="radio" name="radio-v-2" id="radio-v-2b"></div>

                        <div class="ui-radio">
                            <label for="radio-v-2c" class="ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-off ui-last-child">Florence</label>
                            <input type="radio" name="radio-v-2" id="radio-v-2c"></div>

                    </div>
            </fieldset>
            <p><a href="#page_3" class="ui-btn ui-shadow ui-corner-all">Valider</a></p>
        </div>
    </div>

    <div data-role="page" id="page_3">

        <div data-role="header">
            <h1>Titre Page 3</h1>
        </div>
        <div role="main" class="ui-content">
            <fieldset data-role="controlgroup">
                    <legend>Fin</legend>

            </fieldset>
            <p><a href="#page_3" class="ui-btn ui-shadow ui-corner-all">Valider</a></p>
        </div>
    </div>



</body>
</html>