1

我说的是这里的 Twitter Boostrap 单选按钮:http: //twitter.github.com/bootstrap/javascript.html#buttons

我在我的视图文件中使用了它们,如下所示:

<div class="btn-group" data-toggle="buttons-radio">
     <input type="button" name="type" class="btn" value="Car">
     <input type="button" name="type" class="btn" value="Bicycle">
</div>

但是当我提交表单并尝试验证它们时,我无法获得它们的值......

echo $_POST['type'];是空的......那么我应该如何访问和验证上述“单选”按钮?

4

3 回答 3

1

该插件仅适用于外观:它不设置任何内容(类除外)。你必须使用你自己的 JS 来设置一些真正的单选按钮,或者一个独特的隐藏输入。

$('[data-toggle="buttons-radio"] > .btn').on('click',function() {
    $('#someHiddenInput').val($(this).val());
});

演示(jsfiddle)

似乎type="button"无论如何都没有提交(在我的 Firefox 上)。


这是一种方法,另一种方法是检查提交哪个具有.active该类。

于 2012-10-24T20:08:34.867 回答
0

一个优雅的解决方案源自 Sherbrow 的回答。它使您可以拥有多个 Bootstrap 风格的单选按钮,并通过一行代码使它们与隐藏的输入保持同步。您需要做的就是始终在 .btn 组内放置一个隐藏的输入。

HTML:

        <!-- Vehicle
        ================================================== -->
        <div class="control-group">
            <label class="control-label" for="selectRecipients">Vehicle</label>
            <div class="controls">
                <div class="btn-group" data-toggle="buttons-radio">
                    <button type="button" class="btn" value="car">Car</button>
                    <button type="button" class="btn" value="bicyle">Bicycle</button>
                    <input type="hidden" name="vehicle" value=""></input>
                </div>
            </div>
        </div>

        <!-- Food
        ================================================== -->
        <div class="control-group">
            <label class="control-label" for="selectRecipients">Vehicle</label>
            <div class="controls">
                <div class="btn-group" data-toggle="buttons-radio">
                    <button type="button" class="btn" value="apples">Apples</button>
                    <button type="button" class="btn" value="oranges">Oranges</button>
                    <input type="hidden" name="food" value=""></input>
                </div>
            </div>
        </div>

查询:

    /** Associate UI-only radio buttons with hidden fields **/
    $('[data-toggle="buttons-radio"] > button').on('click', function() {
        $(this).parent().find('input[type=hidden]').val( $(this).val() );
        alert( $(this).parent().find('input[type=hidden]').val() );
    });

演示:http: //jsfiddle.net/KyHMp/1/

在实时设置中,您希望将其中一个按钮设置为默认活动按钮 (.active),并为隐藏字段提供默认值。

我希望它可以帮助某人。

于 2013-02-15T21:56:01.517 回答
-1

这实际上甚至与 Twitter Bootstrap 无关。您应该考虑为“名称”属性设置唯一名称。

于 2012-10-23T01:31:31.637 回答