1分で作るスマホ対応Bootstrap注文フォーム
掲載日:2014年3月24日更新
カテゴリ:Bootstrap
注文フォームは今後よく使うだろうから、ひとつ作って手元に置いておきたい。
どうせ作るならスマホ対応のがいいなあ。いやいやスマホだけとは言わず、タブレットやパソコンにも対応しているのがいい。
そうなるとBootstrapで作るのがいいかな?Bootstrapのグリッドレイアウトは強力だからレスポンシブルな注文フォームがすぐ作れそう。
というわけで作ってみた。
iPhone5sで見るとこんな感じ。下の方が切れちゃってますが…。
iPad Airで見るとこんな感じ。
パソコンで見るとこんな感じになった。
タブレットとあんまり変わらないなあ。
ソースを公開しときます。基本、コピペでいけます。
ただしグリッドレイアウトはBootstrapのバージョン3から導入されたっぽいので、導入にはBootstrap3を使ってください。
ちなみに今回はvervion3.1.1を使いました。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title></title>
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
</head>
<body>
<div class="well">
<form class="form-horizontal">
<fieldset>
<legend>お届け先</legend>
<div class="form-group">
<label for="name" class="col col-xs-12 col-sm-4 col-md-3 control-label">お名前</label>
<div class="col col-xs-5 col-sm-3 col-md-3">
<input type="text" name="name1" id="name1" class="form-control" placeholder="姓">
</div>
<div class="col col-xs-5 col-sm-3 col-md-3">
<input type="text" name="name2" id="name2" class="form-control" placeholder="名">
</div>
<div class="col-xs-offset-2 col-sm-offset-2 col-md-offset-3"></div>
</div>
<div class="form-group">
<label for="kana" class="col-xs-12 col col-sm-4 col-md-3 control-label">お名前(フリガナ)</label>
<div class="col col-xs-5 col-sm-3 col-md-3">
<input type="text" name="kana1" id="kana1" class="form-control" placeholder="セイ">
</div>
<div class="col col-xs-5 col-sm-3 col-md-3">
<input type="text" name="kana2" id="kana2" class="form-control" placeholder="メイ">
</div>
<div class="col-xs-offset-2 col-sm-offset-2 col-md-offset-3"></div>
</div>
<div class="form-group">
<label for="zipcode" class="col col-xs-12 col-sm-4 col-md-3 control-label">郵便番号</label>
<div class="col col-xs-7 col-sm-4 col-md-4">
<div class="input-group">
<span class="input-group-addon">〒</span>
<input type="text" name="zipcode" id="zipcode" class="form-control" placeholder="000-0000">
</div>
</div>
<div class="col-xs-offset-5 col-sm-offset-4 col-md-offset-5"></div>
</div>
<div class="form-group">
<label for="pref" class="col col-xs-12 col-sm-4 col-md-3 control-label">住所</label>
<div class="col col-xs-7 col-sm-4 col-md-3">
<select name="pref" id="pref" class="form-control">
<option value="北海道">北海道</option>
<option value="青森県">青森県</option>
<option value="岩手県">岩手県</option>
<option value="宮城県">宮城県</option>
<option value="秋田県">秋田県</option>
<option value="山形県">山形県</option>
<option value="福島県">福島県</option>
<option value="茨城県">茨城県</option>
<option value="栃木県">栃木県</option>
<option value="群馬県">群馬県</option>
<option value="埼玉県">埼玉県</option>
<option value="千葉県">千葉県</option>
<option value="東京都">東京都</option>
<option value="神奈川県">神奈川県</option>
<option value="新潟県">新潟県</option>
<option value="山梨県">山梨県</option>
<option value="長野県">長野県</option>
<option value="富山県">富山県</option>
<option value="石川県">石川県</option>
<option value="福井県">福井県</option>
<option value="岐阜県">岐阜県</option>
<option value="静岡県">静岡県</option>
<option value="愛知県">愛知県</option>
<option value="三重県">三重県</option>
<option value="滋賀県">滋賀県</option>
<option value="京都府">京都府</option>
<option value="大阪府">大阪府</option>
<option value="兵庫県">兵庫県</option>
<option value="奈良県">奈良県</option>
<option value="和歌山県">和歌山県</option>
<option value="鳥取県">鳥取県</option>
<option value="島根県">島根県</option>
<option value="岡山県">岡山県</option>
<option value="広島県">広島県</option>
<option value="山口県">山口県</option>
<option value="徳島県">徳島県</option>
<option value="香川県">香川県</option>
<option value="愛媛県">愛媛県</option>
<option value="高知県">高知県</option>
<option value="福岡県">福岡県</option>
<option value="佐賀県">佐賀県</option>
<option value="長崎県">長崎県</option>
<option value="熊本県">熊本県</option>
<option value="大分県">大分県</option>
<option value="宮崎県">宮崎県</option>
<option value="鹿児島県">鹿児島県</option>
<option value="沖縄県">沖縄県</option>
</select>
</div>
<div class="col-xs-offset-5 col-sm-offset-4 col-md-offset-6"></div>
</div>
<div class="form-group">
<div class="col col-sm-8 col-sm-offset-4 col-md-9 col-md-offset-3">
<input type="text" name="addr1" id="addr1" class="form-control" placeholder="市区町村名">
<p class="help-block">住所は2つに分けてご記入ください。</p>
<input type="text" name="addr2" id="addr2" class="form-control" placeholder="番地・ビル名">
<p class="help-block">マンション名は必ず記入してください。</p>
</div>
</div>
<div class="form-group">
<label for="tel" class="col col-xs-12 col-sm-4 col-md-3 control-label">電話番号</label>
<div class="col-xs-12 colcol-xs-10 col-sm-6 col-md-7">
<div class="input-group">
<input type="tel" name="tel1" id="tel1" class="form-control" placeholder="080">
<span class="input-group-addon">-</span>
<input type="tel" name="tel2" id="tel2" class="form-control" placeholder="0000">
<span class="input-group-addon">-</span>
<input type="tel" name="tel3" id="tel3" class="form-control" placeholder="0000">
</div>
</div>
<div class="col-xs-offset-2 col-sm-offset-2 col-md-offset-2"></div>
</div>
<div class="form-group">
<label for="email" class="col col-xs-12 col-sm-4 col-md-3 control-label">メールアドレス</label>
<div class="col col-xs-12 col-sm-6 col-md-7">
<input type="email" name="email" id="email" class="form-control" placeholder="メールアドレスを入力してください">
</div>
<div class="col-xs-offset-0 col-sm-offset-2 col-md-offset-2"></div>
</div>
<div class="form-group">
<div class="col col-xs-9 col-xs-offset-3 col-sm-8 col-sm-offset-4 col-md-9 col-md-offset-3">
<button type="submit" class="btn btn-success btn-lg"> 確 認 </button>
</div>
</div>
</fieldset>
</form>
</div>
<script src="http://code.jquery.com/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
<script type="text/javascript">
jQuery(function($){
// 郵便番号入力による住所自動入力
$('#zipcode').change(function(){
var zip = $(this).val();
var url = 'http://api.zipaddress.net?callback=?';
var query = {'zipcode': zip};
$.getJSON(url, query, function(json){
$('#pref').val(json.pref);
$('#addr1').val(json.address);
});
});
});
</script>
</body>
</html>
さて郵便番号を入力すると住所が自動入力されます。
これはつながるnetさんのサイトを参考にしました。
すごくシンプルなのがいい!
かつBootstrapはjQueryを必須とするので、導入も楽なのが更にいい!
あと必要になりそうな入力チェック(バリデーション)なんかはPHPやJavaScriptなどで追加してください。
とりあえず今回はモックアップまでの公開ということで。




