コラム: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ファイルをブラウザで開いたあと、右クリックをして『ソースの表示』を選択してください。
メモ帳で、ファイルの中身を見ることができます。





