如何绑定bootstrap按钮复选框和表单?

时间:2013-09-04 11:05:14

标签: javascript jquery twitter-bootstrap

代码看起来像这样:

<form action="/test.html" method="get">
    <p><b>Question?</b></p>
    <p><input type="radio" name="answer" value="a">C<Br>
       <input type="radio" name="answer" value="b">B<Br>
       <input type="radio" name="answer" value="c">C</p>

    <div class="btn-group" data-toggle="buttons-checkbox">
    <button type="button" name="bb" value="b1" class="btn btn-primary">Left</button>
    <button type="button" name="bb" value="b2" class="btn btn-primary">Middle</button>
    <button type="button" name="bb" value="b3" class="btn btn-primary">Right</button>
    </div>

    <p><input type="submit"></p>
</form>

如何将其发送到get方法?可能必须编写一些js(jquery)代码,但我不能提出任何问题。

2 个答案:

答案 0 :(得分:1)

您遇到的问题是未提交按钮值。

以下内容将为提交表单时选择的按钮创建隐藏的输入元素。

<form action="/test.html" id="the-form" method="get">
    <p><b>Question?</b></p>
    <p><input type="radio" name="answer" value="a">C<Br>
       <input type="radio" name="answer" value="b">B<Br>
       <input type="radio" name="answer" value="c">C</p>

    <div class="btn-group" data-toggle="buttons-checkbox">
        <button type="button" name="bb1" value="b1" class="btn btn-primary">Left</button>
        <button type="button" name="bb2" value="b2" class="btn btn-primary">Middle</button>
        <button type="button" name="bb3" value="b3" class="btn btn-primary">Right</button>
    </div>

    <p><input type="submit"></p>
</form>
<script>
    $('#the-form').on('submit', function() {
        $('.btn.active', '#the-form').each(function() {
            var input = document.createElement("input");
            input.setAttribute("type", "hidden");
            input.setAttribute("name", this.name);
            input.setAttribute("value", this.value);
            document.getElementById("the-form").appendChild(input);
        });
    });
</script>

N.B。为了实现这一点,我必须为表单提供一个ID,并为按钮指定唯一的名称(因为它们是buttons-checkbox而不是buttons-radio,请参阅docs)。

如果您希望使用buttons-group行为:

<div class="btn-group" data-toggle="buttons-radio">
    <button type="button" name="bb" value="b1" class="btn btn-primary">Left</button>
    <button type="button" name="bb" value="b2" class="btn btn-primary">Middle</button>
    <button type="button" name="bb" value="b3" class="btn btn-primary">Right</button>
</div>

答案 1 :(得分:0)

.btn-group下的按钮未提交,因为它们的类型不正确。您需要将type="button"更改为type="submit"。只有type="submit"的按钮才会提交父form(默认按钮类型为submit)。

<div class="btn-group" data-toggle="buttons-checkbox">
    <button type="submit" name="bb" value="b1" class="btn btn-primary">Left</button>
    <button type="submit" name="bb" value="b2" class="btn btn-primary">Middle</button>
    <button type="submit" name="bb" value="b3" class="btn btn-primary">Right</button>
</div>