input[type=”range”] と jQuery


input[type=”range”] という出番が少ないタグですが、使う機会があったので、色々と忘れないように。

ローンのシミュレーションや自動見積もりなどで使うことがあるかと。

まずは HTML。

<ul>
	<li><input type="number" id="sampleView" name="sampleView" min="0" max="2000" value="50"></li>
	<li><input type="range" id="sampleRange" name="sampleRange" step="10" min="0" max="2000" value="50"></li>
</ul>

jQuery は次のように。

$(function(){
	const sampleView  = $('#sampleView');
	const sampleRange = $('#sampleRange');
	sampleRange.on('input change',function(){
		sampleView.val( $(this).val() );
	});
	sampleView.on('keyup',function(){
		sampleRange.val( $(this).val() );
	});
});

カンマ区切りにしたい場合、input[type=”number”] ではカンマ区切りができないので、input[type=”text”] として、次を使う。

<ul>
	<li><input type="text" id="sampleView" name="sampleView" value="50"></li>
	<li><input type="range" id="sampleRange" name="sampleRange" step="10" min="0" max="2000" value="50"></li>
</ul>
$(function(){
	const sampleView  = $('#sampleView');
	const sampleRange = $('#sampleRange');
	sampleRange.on('input change',function(){
		sampleView.val( addComma( $(this).val() ) );
	});
	sampleView.on('keyup',function(){
		sampleRange.val( $(this).val() );
	});

	function addComma(num)
	{
		return String(num).replace(/(\d)(?=(\d{3})+(?!\d))/g,'$1,');
	}
});