Bootstrap3 单选按钮不适用于键盘
Bootstrap3 Radio Button not working with keyboard
我正在使用 Bootstrap3、html、css、php。如果可能的话,我不使用 javascript,或者 jquery。
我想制作一个包含几个问题的表格,答案是:是、否、未回答。 Bootstrap3 有单选按钮,看起来很理想,而且效果很好——如果我使用鼠标的话。但是,如果我切换到按钮并按 space,Bootstrap 似乎严重损坏。按钮值未发布。或者,如果我单击“是”按钮,然后使用箭头键更改为“否”并提交表单,“是”值仍会发布。这是在 Linux Mint 上的 Firefox 36.0。
有谁知道如何让单选按钮与键盘一起工作?
这里是示例代码 (test2.php):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<?php
echo "<p>Value: ".$_POST["tstRadio"]."</p>";
?>
<div class="page-wrapper">
<form class="form-horizontal"
action="test2.php"
method="POST">
<div class="form-group">
<div class="col-xs-12 col-sm-9">
<label class="control-label" for="tstRadio" >Question</label>
</div>
<div class="col-xs-12 col-sm-3">
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary"><input type="radio" name="tstRadio" value="yes" >Yes</label>
<label class="btn btn-primary"><input type="radio" name="tstRadio" value="no" >No</label>
</div>
</div>
</div>
<button type="submit"
class="btn btn-primary btn-large"
name="send"
>Click to Submit Application</button>
<p> </p>
</form>
</div>
<script src="bootstrap/js/jquery.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
</body>
</html>
这显示发布的值和单选按钮。我遗漏了我放在网站上的所有样式。
单击“是”按钮,选择“是”按钮(阴影有细微变化——我有一些 CSS 使其更明显,但没有它就会出现问题)然后在提交上,值 "yes" 已发布。单击否,然后单击提交,显示已发布的 "no"。只需单击提交,没有发布值。目前还不错。
接下来,在新表单上,我按 Tab 键。第一个问题:我看不到哪个控件具有焦点。我按 space。选择是。啊哈——那才是重点。点击提交。但是发布的值是空的!
接下来,单击“是”。按 Tab,右箭头。现在选择了否按钮。单击提交。发布的值为 "yes" - 与用户预期的完全相反!
让我担心的是,人们可能让单选按钮显示某些答案,然后提交表单,并记录了错误的答案。我对过去记录的内容无能为力,但将来如何防止?
很抱歉回答我自己的问题,但我在其他地方遇到了一个 post 至少部分解决了这个问题。
在 https://github.com/twbs/bootstrap/issues/6570 有一个 post 由 TurboKia 在其中替换了
中的 "label"
<label class="btn btn-primary"><input type="radio" name="tstRadio" value="yes" >Yes</label>
与"button",即
<button class="btn btn-primary"><input type="radio" name="tstRadio" value="yes" >Yes</button>
我不明白这个。当我查看如何在 Bootstrap 中进行单选按钮组时,例如
http://www.tutorialrepublic.com/twitter-bootstrap-tutorial/bootstrap-buttons.php
它说要使用
<style>
.btn-group > .btn-tick.active
{
background-image:url('images/TickMark_Light.png');
background-repeat:no-repeat;
}
</style>
...
<div class="btn-group" data-toggle="buttons">
<button class="btn btn-primary btn-tick"><input type="radio" name="tstRadio" value="yes" >Yes</button>
<button class="btn btn-primary btn-tick"><input type="radio" name="tstRadio" value="no" >No</button>
</div>
所以现在当我切换到按钮时按钮会改变颜色,但只有在它具有焦点时通过按 space 或单击它来选择时才会用勾号标记。我希望这似乎可以解决我的问题。可以看到您何时切换到按钮,并且选中按钮和未选中按钮之间的区别不再只是细微的颜色变化 - 选中按钮上有一个刻度线。 (我会展示这个,但我没有上传图片的声誉。)
违背这些按钮应该如何工作的教程,让我想知道会出什么问题 - 但目前,我没有看到任何进一步的问题。
抱歉,我没有 fiddle。我确实尝试制作一个,但我根本无法使 bootstrap 个单选按钮组工作,无论是使用
我正在使用 Bootstrap3、html、css、php。如果可能的话,我不使用 javascript,或者 jquery。
我想制作一个包含几个问题的表格,答案是:是、否、未回答。 Bootstrap3 有单选按钮,看起来很理想,而且效果很好——如果我使用鼠标的话。但是,如果我切换到按钮并按 space,Bootstrap 似乎严重损坏。按钮值未发布。或者,如果我单击“是”按钮,然后使用箭头键更改为“否”并提交表单,“是”值仍会发布。这是在 Linux Mint 上的 Firefox 36.0。
有谁知道如何让单选按钮与键盘一起工作?
这里是示例代码 (test2.php):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<?php
echo "<p>Value: ".$_POST["tstRadio"]."</p>";
?>
<div class="page-wrapper">
<form class="form-horizontal"
action="test2.php"
method="POST">
<div class="form-group">
<div class="col-xs-12 col-sm-9">
<label class="control-label" for="tstRadio" >Question</label>
</div>
<div class="col-xs-12 col-sm-3">
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary"><input type="radio" name="tstRadio" value="yes" >Yes</label>
<label class="btn btn-primary"><input type="radio" name="tstRadio" value="no" >No</label>
</div>
</div>
</div>
<button type="submit"
class="btn btn-primary btn-large"
name="send"
>Click to Submit Application</button>
<p> </p>
</form>
</div>
<script src="bootstrap/js/jquery.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
</body>
</html>
这显示发布的值和单选按钮。我遗漏了我放在网站上的所有样式。
单击“是”按钮,选择“是”按钮(阴影有细微变化——我有一些 CSS 使其更明显,但没有它就会出现问题)然后在提交上,值 "yes" 已发布。单击否,然后单击提交,显示已发布的 "no"。只需单击提交,没有发布值。目前还不错。
接下来,在新表单上,我按 Tab 键。第一个问题:我看不到哪个控件具有焦点。我按 space。选择是。啊哈——那才是重点。点击提交。但是发布的值是空的!
接下来,单击“是”。按 Tab,右箭头。现在选择了否按钮。单击提交。发布的值为 "yes" - 与用户预期的完全相反!
让我担心的是,人们可能让单选按钮显示某些答案,然后提交表单,并记录了错误的答案。我对过去记录的内容无能为力,但将来如何防止?
很抱歉回答我自己的问题,但我在其他地方遇到了一个 post 至少部分解决了这个问题。
在 https://github.com/twbs/bootstrap/issues/6570 有一个 post 由 TurboKia 在其中替换了
中的 "label"<label class="btn btn-primary"><input type="radio" name="tstRadio" value="yes" >Yes</label>
与"button",即
<button class="btn btn-primary"><input type="radio" name="tstRadio" value="yes" >Yes</button>
我不明白这个。当我查看如何在 Bootstrap 中进行单选按钮组时,例如 http://www.tutorialrepublic.com/twitter-bootstrap-tutorial/bootstrap-buttons.php 它说要使用
<style>
.btn-group > .btn-tick.active
{
background-image:url('images/TickMark_Light.png');
background-repeat:no-repeat;
}
</style>
...
<div class="btn-group" data-toggle="buttons">
<button class="btn btn-primary btn-tick"><input type="radio" name="tstRadio" value="yes" >Yes</button>
<button class="btn btn-primary btn-tick"><input type="radio" name="tstRadio" value="no" >No</button>
</div>
所以现在当我切换到按钮时按钮会改变颜色,但只有在它具有焦点时通过按 space 或单击它来选择时才会用勾号标记。我希望这似乎可以解决我的问题。可以看到您何时切换到按钮,并且选中按钮和未选中按钮之间的区别不再只是细微的颜色变化 - 选中按钮上有一个刻度线。 (我会展示这个,但我没有上传图片的声誉。)
违背这些按钮应该如何工作的教程,让我想知道会出什么问题 - 但目前,我没有看到任何进一步的问题。
抱歉,我没有 fiddle。我确实尝试制作一个,但我根本无法使 bootstrap 个单选按钮组工作,无论是使用