jQuery单个表单上的多个滑块

时间:2012-03-18 19:53:51

标签: jquery jquery-ui jquery-selectors

我的页面中有多个滑块表单:例如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 个答案:

答案 0 :(得分:4)

您需要为所需的每个滑块添加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);
    }
});

这里重要的部分是值的设置 - 它从滑块div中抓取id属性为其添加_question,然后找到匹配{{1}的input属性。

Working example here

注意:您没有在name上指定默认值,因此如果用户要提交,则不会提交任何内容(正如您在我的示例中所做的那样)

答案 1 :(得分:1)

只需更改

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

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

通过将隐藏字段更改为文本来测试它。