jQueryでhtmlを書き換える

jQueryの勉強を引き続き実施。今回はhtmlの内容を書き換えるプログラムコードを書いてみて実装。
ページを表示したときに指定するフォームを表示したあと、ボタンをクリックした時に指定するフォームへ書き換えるものに仕上げたので備忘録。
今回はプランや講座がいくつかあって、それぞれの申込みフォームが表示されるイメージです。
※jQueryの勉強をしつつ見た目はいい感じにしたかったので、Bootstrap を使用しています。

★応用していくときの流れ

STEP1.ページを開いたときに指定のフォームを表示する。
jq8_1

STEP2.ボタンをクリックしたときに、指定のフォームを表示する。
jq8_2

スポンサーリンク
スポンサーリンク




STEP1-1. htmlファイルを準備する

まずは、htmlファイル内に3つほど案内っぽいものとそれぞれにボタンを作ります。
その下には申込みフォームを表示する部分を作ります。
申込みフォームはdivタブで「id=’s-form’」にして、ひとまず作っておきます。
また、画面上部に表示した案内についてはcssで装飾しています。今回は、一時的なものなのでcssもhtmlファイル内に書いていきます。
以下、htmlファイルの中身です。

・・・・・cssの部分です・・・・・
  <style>
  	body{
		font-family:'Lucida Grande',
		 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3',
		 Meiryo, メイリオ, sans-serif;
	}
	table{
		margin: auto;
		align: center;
	}
	table, td, th{
		border:1px solid #cccccc;
	}
	tr th{
		padding:20px;
		text-align: center;
		vertical-align: middle;
		font-size:20px;
		color:#fff;
	}
	th.ws1{
		background-color:#5cb85c;
	}
	th.ws2{
		background-color:#5bc0de;
	}
	th.ws3{
		background-color:#d9534f;
	}
	th label{
		color:#000000;
		font-size:5px;
		margin-left:3px;
		vertical-align:top;
		padding:2px;
		border:1px solid #ffff00;
		background-color:#ffff00;
	}
	tr td{
		padding:20px;
		text-align: middle;
		vertical-align: middle;
		font-size:15px;
	}
	.f-btn{
		text-align: center;
		padding:10px;
	}
	#s-form table{
		margin: auto;
		align: center;
	}
  </style>
・・・・・省略。htmlの部分です・・・・・
<div class="container">
<div class="row">
<div class="col-md-4">
<table>
<tr><th class="ws1">ワークショップ1</th></tr>
<tr><td>小学生から参加していただけるプログラミング1日教室です。<br>
プログラミングでロボットを動かします。<br>
<tr><td>定員:10名</td></tr>
</table>
<div class="f-btn"><button type="button" class="btn btn-success">申込みフォーム</button></div>
</div>
<div class="col-md-4">
<table>
<tr><th class="ws2">ワークショップ2</th></tr>
<tr><td>中学生から参加していただけるプログラミング1日教室です。<br>
シューティングゲームを制作します。</td></tr>
<tr><td>定員:15名</td></tr>
</table>
<div class="f-btn"><button id="btn_2" type="button" class="btn btn-info">申込みフォーム</button></div>
</div>
<div class="col-md-4">
<table>
<tr><th class="ws3">ワークショップ3<label>人気!</label></th></tr>
<tr><td>高校生から参加していただけるプログラミング1日教室です。<br>
ロールプレイングゲームを制作します。</tr></td>
<tr><td>定員:10名</td></tr>
</table>
<div class="f-btn"><button id="btn_3" type="button" class="btn btn-danger">申込みフォーム</button></div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-12">
<div id="s-form">
</div>
</div>
</div>
</div>

ここまでだと、以下の画像みたいになっていると思います。↓
jq8_3

続いて、jQueryは別ファイルに記述することが多いのでhtmlファイルからjsファイルを参照するようにします。今回はjsファイルの名前を「sample.js」として、以下をbodyの閉じタグ前に記述します。

・・・・・省略・・・・・
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="sample.js"></script>
</body>

STEP1-2. jQueryでページを開いたときに指定のフォームを表示する

まずはjQueryでページを開いたときに指定するフォームを表示してみます。
htmlの内容を書き換えるので『.html()』メソッドを使用します。
STEP1-1で作っておいたdivタブの「id=’s-form’」に表示させたいフォームへ書き換えます。
以下の内容を「sample.js」に記述します。

//ページを表示したとき指定のhtmlの内容を表示する。
$(function(){
 $('#s-form').html('<table><tr><td class="l_td">参加費</td><td>3,000円(税込)</td></tr><tr><td class="l_td">参加日</td><td><input type="radio"> 20XX/XX/XX 10:00~16:00</td></tr><tr><td class="l_td">参加者</td><td>※全角で入力してください。<br>姓 <input type="text"> (例)山田<br>名 <input type="text"> (例)太郎</td></tr></table><br><div style="text-align:center;"><button type="button" class="btn btn-primary">申し込む</button></div>');
});

どうですか?
以下の画像みたいにフォームが表示されたらOKです。
※ページを開いたときにフォームが表示されていない場合は、F12からDeveloper Toolsを開き、Consoleタブでエラーが出ていないか確認してみてください。
jq8_1

STEP2-2. jQueryでボタンをクリックしたときに、指定のフォームを表示する

続いて3つのボタンに動きをつけていきます。
3つのボタンは『クリック』されたときに動きをするので、『.click()』メソッドを使用します。
ここでは「指定したボタン(id)がクリックされたときに、divタブの「id=’s-form’」の部分に指定するフォームを表示する」ようにします。
STEP1-2での記述したプログラムコードの下に追記してください。以下、jsファイルの内容です。↓

//ボタンをクリック時にフォームを変更する。
$(function(){
	$('#btn_1').click(function(){
		$('#s-form').html('<table><tr><td class="l_td">参加費</td><td>1,000円(税込)</td></tr><tr><td class="l_td">参加日</td><td><input type="radio"> 20TT/TT/TT 9:00~12:00</td></tr><tr><td class="l_td">参加者</td><td>※全角で入力してください。<br>姓 <input type="text"> (例)山田<br>名 <input type="text"> (例)太郎</td></tr></table><br><div style="text-align:center;"><button type="button" class="btn btn-primary">申し込む</button></div>');
	});
	$('#btn_2').click(function(){
		$('#s-form').html('<table><tr><td class="l_td">参加費</td><td>2,000円(税込)</td></tr><tr><td class="l_td">参加日</td><td><input type="radio"> 20WW/WW/WW 11:00~17:00</td></tr><tr><td class="l_td">参加者</td><td>※全角で入力してください。<br>姓 <input type="text"> (例)山田<br>名 <input type="text"> (例)太郎</td></tr></table><br><div style="text-align:center;"><button type="button" class="btn btn-primary">申し込む</button></div>');
	});
	$('#btn_3').click(function(){
		$('#s-form').html('<table><tr><td class="l_td">参加費</td><td>3,000円(税込)</td></tr><tr><td class="l_td">参加日</td><td><input type="radio"> 20XX/XX/XX 10:00~16:00</td></tr><tr><td class="l_td">参加者</td><td>※全角で入力してください。<br>姓 <input type="text"> (例)山田<br>名 <input type="text"> (例)太郎</td></tr></table><br><div style="text-align:center;"><button type="button" class="btn btn-primary">申し込む</button></div>');
	});
});

どうですか?
以下の画像みたいにボタンをクリックしたとき、フォームの内容が変わったらOKです。
※ボタンをクリックしたとき表示・非表示にならない場合は、F12からDeveloper Toolsを開き、Consoleタブでエラーが出ていないか確認してみてください。
jq8_2

今回の動作確認用にデモサイト準備しました。
よかったら画像をクリックして確認してみてください。↓

デモサイト

デモサイト

スポンサーリンク
スポンサーリンク




シェアする

フォローする

スポンサーリンク
スポンサーリンク