コラム:jQueryによるフォーム操作
目次
説明
ここでは、『jQueryによるフォーム操作』について触れます。
Webページのプログラムでは、入力フォームの部品を操作することが多いです。ここでは、その方法について解説します。
テキスト入力欄
テキスト入力欄は、『<input type="text" value="~">』と『<textarea>~</textarea>』の2種類があります。
テキスト入力欄の値の取得と設定は『val()』で行えます。以下、実例です。
【値の取得】
<div><input type="text" id="txt1a" value="text1a"></div> <div><textarea id="txt1b">text1b</textarea></div>
var txt1a = $('#txt1a').val(); var txt1b = $('#txt1b').val();
【値の設定】
<div><input type="text" id="txt2a" value=""></div> <div><textarea id="txt2b"></textarea></div>
$('#txt2a').val(txt1a); $('#txt2b').val(txt1b);
チェックボックス
チェックボックスの値の取得と設定は『prop()』で行えます。以下、実例です。
【値の取得】
<div> <label> <input type="checkbox" id="chck1" checked> チェックボックス </label> </div>
var chck1 = $('#chck1').prop('checked');
【値の設定】
<div> <label> <input type="checkbox" id="chck2"> チェックボックス </label> </div>
$('#chck2').prop('checked', chck1);
ラジオボタン
ラジオボタンの値の取得と設定は『val()』で行えます。ただし、セレクタに注意が必要です。『input[name=rgrp1]』のように、『input』タグで属性『name』が『rgrp1』のような指定の仕方をします。また、選択されている要素は『:checked』で選択します。以下、実例です。
【値の取得】
<div> <label> <input type="radio" name="rgrp1" value="1"> ラジオ1 </label> <label> <input type="radio" name="rgrp1" value="2" checked> ラジオ2 </label> <label> <input type="radio" name="rgrp1" value="3"> ラジオ3 </label> </div>
var rgrp1 = $('input[name=rgrp1]:checked').val();
【値の設定】
<div> <label> <input type="radio" name="rgrp2" value="1"> ラジオ1 </label> <label> <input type="radio" name="rgrp2" value="2"> ラジオ2 </label> <label> <input type="radio" name="rgrp2" value="3"> ラジオ3 </label> </div>
$('input[name=rgrp2]').val([rgrp1]);
セレクトボックス
セレクトボックスの値の取得と設定は『val()』で行えます。以下、実例です。
【値の取得】
<div> <select id="sel1"> <option value="1">選択肢1</option> <option value="2" selected>選択肢2</option> <option value="3">選択肢3</option> </select> </div>
var sel1 = $('#sel1').val();
【値の設定】
<div> <select id="sel2"> <option value="1">選択肢1</option> <option value="2">選択肢2</option> <option value="3">選択肢3</option> </select> </div>
$('#sel2').val(sel1);
送信前の確認
フォームの値をCGIに送る前に、空欄があるか確認したいことがあると思います。その方法を紹介します。
<form id="frm" action="dummy.cgi"> <div><input type="text" id="txt2a" value=""></div> <div><input type="submit"></div> </dorm>
$('#frm').submit(function() { var txt2a = $('#txt2a').val(); if (txt2a === '') { alert('入力欄2aが未入力'); return false; } });
id『frm』に対して、『submit』(送信)時の処理を関数で登録します。この時、関数の戻り値が『false』なら、送信を停止します。
『submit』ボタンではなく、『form』タグの方にイベントを設定するのが注意点です。
サンプルの入手
以下は、今回出てきたサンプルです。
ZIPでまとめてダウンロード (右クリックから保存してください)
『sample1.html』(サンプル)を表示
プログラムの中身を見たい場合は、それぞれのHTMLファイルをブラウザで開いたあと、右クリックをして『ソースの表示』を選択してください。
メモ帳で、ファイルの中身を見ることができます。