728x90
반응형
12/28
사례금 직접 입력시에 숫자만 입력받아야 하기 때문에 숫자가 아닌 문자는 입력되지 않게했다.
열심히 검색해서 이 방법 저 방법 다 써봤는데 이 방법이 제일 간단했다... 후..!!
input box에 숫자만 입력받기
<input type="text" class="form-control" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');" pattern='\d*' placeholder="직접입력" disabled>
또, 아무래도 금액을 입력하는 칸이라서 천단위로 ,를 생기게 해주고 싶었다. (1,000 / 100,000 / 1,000,000)
입력받은 값에 콤마 생성하기
function cmaComma(obj) {
var firstNum = obj.value.substring(0,1); // 첫글자 확인 변수
var strNum = /^[/,/,0,1,2,3,4,5,6,7,8,9,/]/; // 숫자와 , 만 가능
var str = "" + obj.value.replace(/,/gi,''); // 콤마 제거
var regx = new RegExp(/(-?\d+)(\d{3})/);
var bExists = str.indexOf(".",0);
var strArr = str.split('.');
if (!strNum.test(obj.value)) {
alert("숫자만 입력하십시오.\n\n특수문자와 한글/영문은 사용할수 없습니다.");
obj.value = 1;
obj.focus();
return false;
}
if ((firstNum < "0" || "9" < firstNum)){
alert("숫자만 입력하십시오.");
obj.value = 1;
obj.focus();
return false;
}
while(regx.test(strArr[0])){
strArr[0] = strArr[0].replace(regx,"$1,$2");
}
if (bExists > -1) {
obj.value = strArr[0] + "." + strArr[1];
} else {
obj.value = strArr[0];
}
}
function commaSplit(n) {// 콤마 나누는 부분
var txtNumber = '' + n;
var rxSplit = new RegExp('([0-9])([0-9][0-9][0-9][,.])');
var arrNumber = txtNumber.split('.');
arrNumber[0] += '.';
do {
arrNumber[0] = arrNumber[0].replace(rxSplit, '$1,$2');
}
while (rxSplit.test(arrNumber[0]));
if(arrNumber.length > 1) {
return arrNumber.join('');
} else {
return arrNumber[0].split('.')[0];
}
}
<input type="text" size="10" class="form-control"
name="cma_test" onkeyup="cmaComma(this);" onchange="cmaComma(this);" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"
pattern='\d*' placeholder="직접입력" disabled>원
입력과 동시에 콤마가 생성된다!!
728x90
반응형
'Project > IMFIND' 카테고리의 다른 글
[프로젝트] bootstrap collapse 사용하여 지도 띄우기 (map.relayout) (0) | 2021.01.01 |
---|---|
[프로젝트] 팝업창으로 지도 띄우기 (0) | 2020.12.31 |
[프로젝트] 게시판 등록 - radio, select (활성화, 비활성화) (0) | 2020.12.28 |
[프로젝트] 게시글 등록 화면 만들기 - 2 (1) | 2020.12.27 |
[프로젝트] 게시글 등록 화면 만들기 - 1 (0) | 2020.12.27 |
댓글