Форма настроек

Форма настроек для собственного проекта с использованием большой библиотеки jQuery mobile. Элементы формы настроек: текстовые поля, переключатели, слайдер и кнопки выбора.

Демо

Современная форма настроек

Для создания страницы с настройками для проекта, сначала нужно подключить библиотеки jQuery и CSS файлы.

<!-- styles -->
<link href="css/main.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet"  href="jquery.mobile/jquery.mobile-1.1.1.min.css" />

<!-- scripts -->
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="jquery.mobile/jquery.mobile-1.1.1.min.js"></script>
к меню ↑

HTML для формы настроек

Обратите внимание что это всё разделено на 2 секции: hidden_basic_settings и hidden_advanced_settings. Обе части не видны по умолчанию.

<form action="index.php" method="post" data-ajax="false">
    <div class="ui-body ui-body-c">
        <h2>Стильная и современная форма настроек</h2>

        <!-- Text input fields -->
        <div data-role="fieldcontain">
         <label for="text-p-1">Парам 1:</label>
         <input type="text" name="text-p-1" id="text-p-1" value="" data-mini="true" />
        </div>

        <div data-role="fieldcontain">
         <label for="text-p-2">Парам 2:</label>
         <input type="text" name="text-p-2" id="text-p-2" value="" data-mini="true" />
        </div>

        <!-- Basic settings switcher -->
        <div data-role="fieldcontain">
            <label for="basic_settings">Показать основные настройки:</label>
            <select name="basic_settings" id="basic_settings" data-role="slider" data-mini="true">
                <option value="off">ВЫК</option>
                <option value="on">ВКЛ</option>
            </select>
        </div>

        <!-- Basic settings - hidden section -->
        <div class="ui-body ui-body-c hidden_basic_settings" style="display:none">

            <!-- Text input fields -->
            <div data-role="fieldcontain">
             <label for="text-1">Ввод текста 1:</label>
             <input type="text" name="text-1" id="text-1" value="" data-mini="true" />
            </div>

            <div data-role="fieldcontain">
             <label for="text-2">Ввод текста 2:</label>
             <input type="text" name="text-2" id="text-2" value="" data-mini="true" />
            </div>

            <!-- Switch selector field -->
            <div data-role="fieldcontain">
                <label for="switch">Переключатель:</label>
                <select name="switch" id="switch" data-role="slider" data-mini="true">
                    <option value="off">ВЫК</option>
                    <option value="on">ВКЛ</option>
                </select>
            </div>

            <!-- Slider field -->
            <div data-role="fieldcontain">
                <label for="slider">Слайдер:</label>
                <input type="range" name="slider" id="slider" value="0" min="0" max="100" data-mini="true" />
            </div>

        </div>

        <!-- Advanced settings switcher -->
        <div data-role="fieldcontain">
            <label for="advanced_settings">Дополнительные параметры:</label>
            <select name="advanced_settings" id="advanced_settings" data-role="slider" data-mini="true">
                <option value="off">ВЫК</option>
                <option value="on">ВКЛ</option>
            </select>
        </div>

        <!-- Advanced settings - hidden section -->
        <div class="ui-body ui-body-c hidden_advanced_settings" style="display:none">

            <!-- Multiple checkboxes -->
            <div data-role="fieldcontain">
            <fieldset data-role="controlgroup" data-type="horizontal" data-mini="true">
                <legend>Несколько отметок:</legend>
                <input type="checkbox" name="checkbox-1" id="checkbox-1" class="custom" />
                <label for="checkbox-1">Отметить 1</label>

                <input type="checkbox" name="checkbox-2" id="checkbox-2" class="custom" />
                <label for="checkbox-2">Отметить 2</label>

                <input type="checkbox" name="checkbox-3" id="checkbox-3" class="custom" />
                <label for="checkbox-3">Отметить 3</label>
            </fieldset>
            </div>

            <!-- Radio buttons -->
            <div data-role="fieldcontain">
                <fieldset data-role="controlgroup" data-mini="true">
                    <legend>Радиокнопки:</legend>
                        <input type="radio" name="radio-1" id="radio-1" value="1" />
                        <label for="radio-1">Кнопка 1</label>

                        <input type="radio" name="radio-1" id="radio-2" value="2"  />
                        <label for="radio-2">Кнопка 2</label>

                        <input type="radio" name="radio-1" id="radio-3" value="3"  />
                        <label for="radio-3">Кнопка 3</label>

                        <input type="radio" name="radio-1" id="radio-4" value="4"  />
                        <label for="radio-4">Кнопка 4</label>
                </fieldset>
            </div>

            <!-- Selector -->
            <div data-role="fieldcontain">
                <label for="select" class="select">Выбрать:</label>
                <select name="select" id="select" data-native-menu="false" data-mini="true">
                    <option value="value1">Вариант 1</option>
                    <option value="value2">Вариант 2</option>
                    <option value="value3">Вариант 3</option>
                    <option value="value4">Вариант 4</option>
                    <option value="value5">Вариант 5</option>
                </select>
            </div>

        </div>

        <!-- Buttons -->
        <fieldset class="ui-grid-a">
            <div class="ui-block-a"><button type="submit" data-theme="b" data-mini="true">Отправить</button></div>
            <div class="ui-block-b"><button type="cancel" data-theme="c" data-mini="true">Отменить</button></div>
        </fieldset>
    </div>
</form>
к меню ↑

JavaScript для формы настроек

JavaScript применяется для того чтобы показать и скрыть, по умолчанию скрытые разделы.

$(document).ready(function() {

    $('#basic_settings').change(function(event, ui) {
        if ($(this).attr('value') == 'on') {
            $('.hidden_basic_settings').slideDown(500);
        } else {
            $('.hidden_basic_settings').slideUp(500);
        }
    });

    $('#advanced_settings').change(function(event, ui) {
        if ($(this).attr('value') == 'on') {
            $('.hidden_advanced_settings').slideDown(500);
        } else {
            $('.hidden_advanced_settings').slideUp(500);
        }
    });

});

Если вам понравился результат — не ленитесь поделитесь им с друзьями нажав на наши социальные кнопки.