【发布时间】:2014-08-14 12:56:32
【问题描述】:
我正在使用 Bootstrap,并且我有一个奇怪的单选按钮组。这是标记:
<div class="btn-group custom-btn-group" data-toggle="buttons">
<label class="btn btn-default active">
<input type="radio" class="form-control" name="feature_enabled" value="1"> Enabled
</label>
<label class="btn btn-default">
<input type="radio" class="form-control" name="feature_enabled" value="0"> Disabled
</label>
</div>
如您所见,“启用”按钮在页面加载时启用。如果我不点击“启用”按钮并且我提交表单变量feature_enabled 不存在,但如果我这样做了,它就是。我正在使用 jQuery 的 serialize() 函数来收集表单数据。但是,当我单击单选输入时,我可以看到(在开发人员工具栏中)没有“选中”或“选定”属性添加到该 HTML 节点。
此外,如果我输入 $('input[type=radio]:checked').val() 我得到了 undefined 但在我点击那个按钮后我得到了值。
为什么会这样?
更新
我更新了单选按钮的名称,因为正如您所说,它们应该具有相同的名称。在我的工作区他们有。当我更改 html 标记来创建这个问题时,这个“错误”就出现了。
更新 2
好的,我知道我可以将“选中”属性添加到我的单选按钮,并且还知道只有“活动”类使输入看起来像是被按下了。但!检查引导站点关于输入here 或here!使用 F12 打开开发人员工具栏,然后查看当您单击任一单选输入时,HTML 源代码中没有添加“选中”属性。
当我在保存之前单击它并且输入节点没有获得“已检查”属性时,我的站点会保存 featue_enabled 的值。我能观察到的唯一变化是“活动”类进入单击的节点并离开另一个。 (同样,发布此表单在没有“已检查”属性的情况下工作!)
我认为这是一个有趣的案例,很高兴知道为什么会发生这种情况!
【问题讨论】:
标签: jquery html twitter-bootstrap-3 radio-button