반응형
웹 개발을 하다 보면 여러 개의 input의 값을 합산하거나 체크해야 하는 경우가 발생합니다. 보통 이런 경우 두 가지 방식을 활용 가능합니다.
만약 아래와 같이 html이 구성되어있다면
<!-- 값 -->
값1: <input type="text" name="type01" class="in_box"/><br/>
값2: <input type="text" name="type02" class="in_box"/><br/>
값3: <input type="text" name="typett" class="in_box"/><br/>
값4: <input type="text" name="typexx" class="in_box"/><br/>
<!-- 버튼 -->
<button type="button" onclick="doSum()">합계</button><br/>
<!-- 합계 -->
합계: <input type="text" name="sum" value=""/>
비슷한 name으로 합산하는 방법 → $("input[name*='키값']")
function doSum(){
let sum = 0;
$('input[name*="type"]').each(function(){
// type으로 시작하는 input을 순차적으로 loop
if(!isNaN($(this).val())){
// CASE 값에 문자가 없는 경우 (숫자인 경우만 합산)
sum += parseInt($(this).val());
}
});
// 합산한 값을 name="sum"인 input에 넣어줌
$("input[name=sum]").val(sum);
}
같은 클래스명으로 합산하는 방법
function doSum(){
let sum = 0;
$('input.in_box').each(function(){
// type으로 시작하는 input을 순차적으로 loop
if(!isNaN($(this).val())){
// CASE 값에 문자가 없는 경우 (숫자인 경우만 합산)
sum += parseInt($(this).val());
}
});
// 합산한 값을 name="sum"인 input에 넣어줌
$("input[name=sum]").val(sum);
}
첫 번째의 경우 유사하지만 포함되지 않는 input을 걸러내기에 부적절하지만(each내부에서 name을 따로 걸러주어야 함) 사용이 편리하다는 장점이 있고, 두 번째의 경우 유사하지만 포함되지 않는 input을 걸러내기에 적절하지만 각 input에 class를 걸어줘야 하는 번거로움이 있기 때문에 입맛에 맞는 걸 선택해서 사용하시면 될 것 같습니다.
※ 샘플 예시 (PC 버전에서만 테스트됩니다) : jsfiddle.net/f05bcp7y/2/
값1:
값2:
값3:
값4:
합계:
반응형
'개발 창고 > Web' 카테고리의 다른 글
[Javascript] 배열 정렬 (0) | 2020.11.10 |
---|---|
[Javascript] JSon 변환하기 (parse 와 stringify) (0) | 2020.10.21 |
[Javascript] Json 데이터에 해당 파라미터 값이 있는지 여부 확인하기 (0) | 2020.10.20 |
[Javascript] 배열(Array) 활용하기 (0) | 2020.09.18 |
[Javascript] var, let, const의 차이 (0) | 2020.09.18 |