S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

数値入力で動的にカンマを入れる

動的にカンマは入るけど、カーソル位置の指定ができんから入力(編集)しにくい…
なんか、カーソル位置を指定することができるげなことを書いてるページはあるけど、できるんかいな?

<HTML>
<head>
<script type="text/javascript">

var lastVal = "";

function doFormatNum() {
	
	var curVal = document.getElementById("num").value;
	
	var val = curVal;
	while (val.indexOf(",") > -1) {
		val = val.replace(",", "");
	}
	
	if ((curVal != "+") && (curVal != "-") && (curVal != ".") && (isNaN(val) == true)) {
		alert("数値じゃないです");
		document.getElementById("num").value = lastVal;
		return;
	}

	var dec = val.length;
	if (val.indexOf(".") > -1) {
		dec = val.indexOf(".");
	}

	var newVal = "";
	if (dec > 0) {
	
		for ( var i = dec ; i > 0 ; i-- ) {
			var num = val.substr(i - 1, 1);
			if ((i != dec) && (((dec - i) % 3) == 0) && (num != "-") && (num != "+")) {
				newVal = "," + newVal;
			}			
			newVal = num + newVal;
		}

		if (val.indexOf(".") > -1) {
			newVal = newVal + val.substr(dec);
		}
		
	} else {

		newVal = val;
		
	}
	
	document.getElementById("num").value = newVal;
	
	lastVal = curVal;
	
}
</script>
</head>
<body>
<input type="text" id="num" onkeyup="return doFormatNum();" size="50" />
</body>
</HTML>