jQuery несколько ползунков на одной форме - PullRequest
2 голосов
/ 18 марта 2012

У меня есть несколько форм слайдера на моей странице: вот так one .Только для одного он работает нормально, но для нескольких форм слайдера значения php post возвращаются пустыми.

Пока у меня есть:

jQuery:

    $(function() {
    $( ".slider" ).slider({
        value:0,
        min: -1,
        max: 1,
        step: 0.01,
        slide: function( event, ui ) {
            $( ".amount" ).val( "$" + ui.value );
        }
    });
    $( ".amount" ).val( "$" + $( ".slider" ).slider( "value" ) );
});

Мой html:

<div class="demo">
    <form action="next.php" method="post">
        <p>
            <label class="amount">How strong is your relationship with this person?</label>
            <input type="hidden" name="first_question" />
        </p>
        <div class="slider"></div>
        <br/>
        <p>
            <label class="amount">How would you feel asking this friend to loan you $100 or more?</label>
            <input type="hidden" name="second_question" />
        </p>
        <input type="submit" value="Submit" />
    </form>
</div>

Как правильно передать значения сообщений?

Ответы [ 2 ]

4 голосов
/ 19 марта 2012

Вам нужно добавить div для каждого нужного слайдера и дать слайдерам атрибут, который связывает их с input - это пример использования вашего HTML в качестве отправной точки:

<div class="demo">
    <form id="myform" action="next.php" method="post">
        <p>
            <label class="amount">How strong is your relationship with this person?</label>
            <input type="hidden" name="first_question"/>
        </p>
        <div class="slider" id="first"></div>
        <br/>
        <p>
            <label class="amount">How would you feel asking this friend to loan you $100 or more?</label>
            <input type="hidden" name="second_question"/>
        </p>
        <div class="slider" id="second"></div>
        <br/>
        <input type="submit" value="Submit" />
    </form>
</div>

Затем используйте для инициализации ползунков следующее:

$(".slider").slider({
    step: 1,
    min: 0,
    max: 10,
    value: 5,
    slide: function(event, ui) {
        $("input[name=" + $(this).attr("id") + "_question]").val(ui.value);
    }
});

Важной частью здесь является установка значения - он берет атрибут id из ползунка, добавляет div_question к нему, а затем находит input с соответствующим атрибутом name.

Рабочий пример здесь

Примечание: у вас нет значений по умолчанию, указанных вinput s, поэтому, если пользователь должен был отправить, вы ничего не получите (как вы будете делать в моем примере)

1 голос
/ 04 ноября 2012

Просто измените

 $( ".amount" ).val( "$" + ui.value );
        }
    });
    $( "input[type="hidden"]"  ).val( "$" + $( ".slider" ).slider( "value" ) );

на

 $( "input['text']" ).val( "$" + ui.value );
        }
    });
    $( "input[type="hidden"]" ).val( "$" + $( ".slider" ).slider( "value" ) );

Проверьте это, изменив скрытые поля на текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...