引导复选框/单选按钮不改变<输入>价值
Bootstrap checkbox/radio buttons do not change <input> value
Bootstrap的JavaScript页面显示了一些按钮对复选框和单选字段进行样式设置的好方法。例如,对于一个复选框,我可能会写
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary">
<input type="checkbox"> Option 1
</label>
</div>
但是,库实际上并没有更改底层<input>
字段的值——它只是更改<label>
字段是否具有类active
。我本以为它会更改复选框上的checked
属性。显然,我并没有误解它——Bootstrap网站上的例子就是这样工作的。
这真的是预期的行为吗?如果是这样的话,这似乎相当无用,因为人们会想要使用复选框字段。如果没有,如何正确配置引导复选框/单选按钮?
输入上的checked
属性不会被修改,因为当复选框输入被选中时,它不会发生变化——checked
DOM属性会发生变化(true或false),Bootstrap会正确处理这一点(您可以在Firebug中检查元素,并在切换它们时查看DOM属性的变化)。checked
属性仅用于在最初渲染DOM时确定默认值。
如果你碰巧用复选框/单选框做任何js/jQuery,请记住这一点!如果您需要以程序方式选中复选框或单选按钮,$('input').attr('checked', 'checked');
将无法完成任务。$('input').prop('checked', true);
正是您所需要的。
这不是引导按钮的特殊行为,这是所有复选框/单选框的工作方式。
编辑:Firebug屏幕截图
编辑2:添加了评论中的文本,因为这似乎很有帮助。
您似乎错过了一个"激活"btn-group
(文档)的调用。这是一个工作的演示:
<form id='testForm'>
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary">
<input type="checkbox" name='Option' value='1' />Option 1</label>
</div>
</form>
<button class='btn' id='actionSubmit'>Submit</button>
<script>
$('#actionSubmit').on('click', function (e) {
e.preventDefault();
alert($('#testForm').serialize());
});
$('.btn-group').button();
</script>
我为MVC.NET这样做,以防有人需要:
@{
var removeSelected = Model.Remove == true ? "active" : "";
var buttonText = Model.Remove == true ? "Add" : "Remove";
}
@Html.HiddenFor(model => model.Remove)
<div class="editor-field">
<div class="btn-group" data-toggle="buttons-checkbox">
<button type="button" id="RemoveButton" class="btn btn-primary @removeSelected" onclick="toggle();">@buttonText</button>
</div
</div>
function toggle() {
var value = $("#Remove").val();
if (value == "False") {
$("#Remove").val("True");
$("#RemoveButton").text("Add");
}
else {
$("#Remove").val("False");
$("#RemoveButton").text("Remove");
}
}
最后,不要忘记添加bootstrap js引用。
- 在<页眉>标签
- 如何更改<svg>标记为<img>用js标记
- 如何逃离<>在javascript下划线模板中
- 有没有一种方法可以检测ios<>使用jquery和触发器操作形成导航按钮
- 正则表达式,它允许除“”之外的所有字符<>_;{}[]”;
- ajax调用:响应<->数据类型
- 如果所有三个文本框<>然后是100%
- CORS的问题.烧瓶<->AngularJS
- 有没有一种方法可以创建与Java<->JSON映射对象,如JSON.stringfy(jsObject)创建的
- 什么是%<>%调用了语法
- JavaScript返回值:What dos<>意思是
- JavaScript中哪种类型的值对应于Java`List<>`
- 如何发送类似“<>"在参数中使用$.ajax-to-server
- 不等于<>操作员不工作
- jquery附加函数转换<>到实体名称
- 只有当超过3个元素时才显示更多内容按钮,否则不显示.使用jquery's:lt:gt
- 为什么在<>ckeditor中不支持
- url有效性的Java脚本regexp,带有<>
- 设计Javascript前端<->C++后端通信
- 比较查询运算符ObjectId<->日期