Web覚書トップ > JavaScript サンプル > 『ラジオボタンで時間間隔を変えてみる』
説明

選択フォームを使って時刻を選択する場合、1分単位で表示されていると選択項目が多くなって面倒なときもあります。 5分単位で選択すれば良いときは、項目も5分単位であれば選択が楽ですよね。

実行例
時  分  ▼ラジオボタンのチェック項目を変えてコンボボックスを見てください

1分  5分  10分  15分  30分

コード
function setMinute(obj, interval, curpoint, maxcount, seltext) {
	interval = getInterval(obj.form.interval);
	obj = obj.form.minute;
	curpoint = (60 / obj.length) * obj.selectedIndex;
	maxcount = 60 / interval;
	obj.length = maxcount;
	for (cnt = 0; cnt < maxcount; cnt++) {
		seltext = cnt * interval
		obj.options[cnt].value = seltext;
		if (cnt * interval < 10) {
			obj.options[cnt].text = "0" + seltext;
		} else {
			obj.options[cnt].text = seltext;
		}
	}
	obj.selectedIndex = Math.floor(curpoint / interval);
}

function getInterval(obj) {
	for (cnt = 0; cnt < obj.length; cnt++) {
		if (obj[cnt].checked) {
			return(parseInt(obj[cnt].value));
		}
	}
}
<FORM>
<SELECT name="hour">
<OPTION value="0">00</OPTION>〜<OPTION value="23">23</OPTION>
</SELECT>時 
<SELECT name="minute">
<OPTION value="0">00</OPTION>〜<OPTION value="59">59</OPTION>
</SELECT>分
<INPUT type="radio" name="interval" value="1"  onClick="setMinute(this)" checked> 1分 
<INPUT type="radio" name="interval" value="5"  onClick="setMinute(this)"> 5分 
<INPUT type="radio" name="interval" value="10" onClick="setMinute(this)"> 10分 
<INPUT type="radio" name="interval" value="15" onClick="setMinute(this)"> 15分 
<INPUT type="radio" name="interval" value="30" onClick="setMinute(this)"> 30分
</FORM>

解説&ステップアップ

発想がメインの処理なので、スクリプト自体は難しいものではありません。
実行例では、ラジオボタンを変更する前の選択フォームの選択項目の値を変更後の選択フォームに反映しています。

動作確認

IE5.0(win)、IE5.5(win)、NN4.7(win)

© hyork@yahoo.co.jp (2001. 3.13)