【Labs】チェックボックスをラジオボタンのような動きにする - web design lab
にほんブログ村 デザインブログ Webデザインへ PVアクセスランキング にほんブログ村

【Labs】チェックボックスをラジオボタンのような動きにする


【Labs】チェックボックスをラジオボタンのような動きにする

こんにちは(・∀・)

チェックボックスをラジオボタン風にしてみました。

Contents

  1. JavaScriptサンプル
  2. jQueryサンプル

チェックボックスのラジオボタン風

チェックボックスもラジオボタンのように複数選択できない動きにしたかったのでJavaScriptで作ってみました。

JavaScriptサンプル

3つのチェックボックスで作ってみました。チェックボックスを増やしたい場合はckboxを増やしてください。

HTML

<form id="form">
<label>1 <input type="checkbox" name="auth1"></label>
<label>2 <input type="checkbox" name="auth2"></label>
<label>3 <input type="checkbox" name="auth3"></label>
</form>
JavaScript

function checkbox(){
document.forms['form'].elements['auth1'].onclick=ckbox1;
document.forms['form'].elements['auth2'].onclick=ckbox2;
document.forms['form'].elements['auth3'].onclick=ckbox3;
}
function ckbox1(){
document.forms['form'].elements['auth2'].checked=false;
document.forms['form'].elements['auth3'].checked=false;
}
function ckbox2(){
document.forms['form'].elements['auth1'].checked=false;
document.forms['form'].elements['auth3'].checked=false;
}
function ckbox3(){
document.forms['form'].elements['auth1'].checked=false;
document.forms['form'].elements['auth2'].checked=false;
}
window.addEventListener('DOMContentLoaded',checkbox,false);
CSS

.tb-cell {
  display: table;
  width: 300px;
  margin: 20px auto 40px auto;
  text-align: left;
}
.tb-cell .row {
  display: table-row;
}
.tb-cell .row .cell {
  display: table-cell;
  width: 300px;
  padding: 20px 40px;
  vertical-align: middle;
  color: #fff;
  background: #ccc;
  text-align: center;
}
label {
  padding: 10px;
}
Result

サンプルデモはこちら
スマホでのご確認はこちらをどうぞ
QRコード

 

jQueryだと次のようになります。

jQueryサンプル

jQueryを使用するのでHTMLの<head>内にjQuery 1.x snippetを読み込みます。
Google Hosted Libraries


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
HTML

<form id="form">
<label>1 <input type="checkbox"></label>
<label>2 <input type="checkbox"></label>
<label>3 <input type="checkbox"></label>
</form>
JavaScript

$(function(){
$('input').on('click',function(){
if ($(this).prop('checked')){
$('input').prop('checked',false);
$(this).prop('checked',true);
}
});
});
CSS

.tb-cell {
  display: table;
  width: 300px;
  margin: 20px auto 40px auto;
  text-align: left;
}
.tb-cell .row {
  display: table-row;
}
.tb-cell .row .cell {
  display: table-cell;
  width: 300px;
  padding: 20px 40px;
  vertical-align: middle;
  color: #fff;
  background: #ccc;
 text-align: center;
}
label {
  padding: 10px;
}
Result

サンプルデモはこちら
スマホでのご確認はこちらをどうぞ
QRコード


にほんブログ村 デザインブログ Webデザインへ PVアクセスランキング にほんブログ村