■ jQuery 를 이용하여 id, class, name 의 input value 값 가져오기

 

 

 

 

1
<input type="text" id="inputId" class="inputClass" name="inputName">
cs

 

 

위와 같은 input tag 가 있다고 가정 하겠습니다. 

 

이 input tag 에 id, class, name 값을 각각 지정 했습니다. 

 

1
<input type="button" onclick="getInputValue();" value="Get Value">
cs

 

버튼을 하나 만들어서 클릭 이벤트 발생 시 getInputValue() 라는 함수가 호출 되도록 했습니다. 

 

이제 getInputValue() 라는 함수를 정의해야 합니다. 

 

첫번째 input tag 의 value 값을 가져 오는 방법은 아래와 같이 세가지가 있습니다. 

 

▶ id 값 기준으로 가져 오기

var valueById = $('#inputId').val();

# 은 아이디를 의미

 

▶ class 값 기준으로 가져 오기

var valueById = $('.inputClass').val();

. 은 클래스를 의미

 

▶ name 값 기준으로 가져 오기

var valueById = $('input[name=inputName]').val();

 

 

위와 같은 방법으로 id, class, name 별로 값을 가져 올 수 있습니다. 

 

 

실제 호출 하는 예제를 보시겠습니다. 

 

1
2
3
4
5
6
7
8
9
10
11
<script type="text/javascript">
    function getInputValue(){
        var valueById = $('#inputId').val();
        var valueByClass = $('.inputClass').val();
        var valueByName = $('input[name=inputName]').val();
            
        alert('valueById = ' + valueById +
                '\nvalueByClass = ' + valueByClass +
                '\nvalueByName = ' + valueByName);
    }
</script>
cs

 

 

위 코드들을 이용 하면 아래와 같은 결과물을 보실 수 있습니다.

 

 

 

 

 

 

input 에 값을 입력 후 Get Value 버튼을 클릭 하시면 입력된 값이 리턴 되는 것을 확인 할 수 있습니다. 

 

 

 

 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D

블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,



안녕하세요. 제임스 입니다. 


앞서 jQuery 를 이용한 스크롤 처리에 관해 포스팅 했었는데요. 

이번에는 스크롤에 애니메이션 효과를 추가 해보도록 하겠습니다. 



■ jQuery 를 이용한 스크롤 애니메이션 효과주기



위 이미지와 같이 스크롤 시 애니메이션 효과 주는 방법에 대해 알아 보겠습니다. 



▶ HTML body 부 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<body style="padding: 20px;">
    <p>※ jQuery 를 이용하여 scroll 처리 하기 </p>
    <div id="scrollTestDiv" style="margin: 20px; height: 200px; width: 300px; 
overflow: scroll; background-color: orange;" >
        <br>--- 애국가 가사 START ---<br><br>
        <br>동해물과 백두산이 마르고 닳도록<br>
        <br>하느님이 보우하사 우리나라 만세<br>
        <br>무궁화 삼천리 화려 강산<br>
        <br>대한사람 대한으로 길이 보전하세<br>
        <br><br>
        <br>남산 위에 저 소나무 철갑을 두른듯<br>
        <br>바람서리 불변함은 우리 기상일세<br>
        <br>무궁화 삼천리 화려 강산<br>
        <br>대한사람 대한으로 길이 보전하세<br>
        <br><br>
        <br>가을 하늘 공활한데 높고 구름 없이<br>
        <br>밝은 달은 우리 가슴 일편단심일세<br>
        <br>무궁화 삼천리 화려 강산<br>
        <br>대한사람 대한으로 길이 보전하세<br>
        <br><br>
        <br>이 기상과 이 마음으로 충성을 다하여<br>
        <br>괴로우나 즐거우나 나라사랑하세<br>
        <br>무궁화 삼천리 화려 강산<br>
        <br>대한사람 대한으로 길이 보전하세<br>
        <br>--- 애국가 가사 END ---<br><br>
    </div>
    
    <input type="button" onclick="scrollToBottomWithAnimation();" value="최하단으로 애니메이션 스크롤 하기">
    <br><br>
    <input type="button" onclick="scrollToTopWithAnimation();" value="최상단으로 애니메이션 스크롤 하기">
    
</body>
cs



height 200px, width 300px 의 div tag 내에 애국가 가사를 입력 했습니다. 당연히 div 범위 내에서 다 표현 할 수 없으므로 스크롤바가 생기게 됩니다. 

이제 이 스크롤바을 앞선 포스팅과 같이 스크롤처리를 할 예정이며 이때 스크롤에 애니메이션 효과를 주겠습니다. 



 javascript 함수


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="text/javascript">
    // 텍스트의 최하단으로 애니메이션 효과를 주어 scroll 하기
    function scrollToBottomWithAnimation(){
        var div = document.getElementById('scrollTestDiv');
        $('#scrollTestDiv').animate({
            scrollTop: div.scrollHeight - div.clientHeight
        }, 500);
    }
    // 텍스트의 최상단으로 애니메이션 효과를 주어 scroll 하기
    function scrollToTopWithAnimation() {
        var div = document.getElementById('scrollTestDiv');
        $('#scrollTestDiv').animate({
            scrollTop: 0
        }, 500);
    }
</script>
cs



animate() 함수를 이용하여 애니메이션 효과를 줄 수 있습니다. 

자세한 내용은 아래 링크 참조 하세요. 

https://developer.mozilla.org/en-US/docs/Web/API/Element/animate



▼ scrollToBottomWithAnimation() 함수

scrollTestDiv 라는 아이디를 가진 요소(여기서는 div tag)를 animate 시킵니다. 

scrollTop 이라는 옵션값을 scrollHeight - clientHeight 값으로 지정 합니다. 


clientHeight 는 요소 내부 padding 값을 포함한 height 값입니다. 

자세한 내용은 아래 링크 참조하세요.

https://developer.mozilla.org/en-US/docs/Web/API/Element/clientHeight


애니메이션 효과를 주는데 delay 시간을 0.5 초로 지정 했습니다. 



▼ scrollToTopWithAnimation() 함수

scrollTop 이라는 옵션값을 0 으로 지정 합니다. 0 이 파싱되면 당연히 최상단으로 이동 되겠죠? ^^



▽▽▽ 결과 화면 (테스트 해보세요) ▽▽▽


--- 애국가 가사 START ---


동해물과 백두산이 마르고 닳도록

하느님이 보우하사 우리나라 만세

무궁화 삼천리 화려 강산

대한사람 대한으로 길이 보전하세



남산 위에 저 소나무 철갑을 두른듯

바람서리 불변함은 우리 기상일세

무궁화 삼천리 화려 강산

대한사람 대한으로 길이 보전하세



가을 하늘 공활한데 높고 구름 없이

밝은 달은 우리 가슴 일편단심일세

무궁화 삼천리 화려 강산

대한사람 대한으로 길이 보전하세



이 기상과 이 마음으로 충성을 다하여

괴로우나 즐거우나 나라사랑하세

무궁화 삼천리 화려 강산

대한사람 대한으로 길이 보전하세

--- 애국가 가사 END ---






 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D



블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,



안녕하세요. 제임스 입니다. 


웹 개발 중 화면상에 스크롤이 생기는 경우가 있습니다. 

그리고 특정 상황에 맞춰 스크롤을 최상단 또는 최하단으로 이동 시켜 줘야 하는 경우가 있습니다. 


이번 포스팅에서는 jQuery 를 이용하여 스크롤 최상단 또는 최하단으로 이동 처리를 하는 방법에 대해 알아 보겠습니다 .


■ jQuery 를 이용하여 스크롤 최하단 or 최상단 이동하기



상기 이미지와 같이 스크롤이 되도록 처리 해보겠습니다.




▶ HTML body 부 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<body style="padding: 20px;">
    <p>※ jQuery 를 이용하여 scroll 처리 하기 </p>
    <div id="scrollTestDiv" style="margin: 20px; height: 200px; width: 300px; 
overflow: scroll; background-color: orange;" >
        <br>--- 애국가 가사 START ---<br><br>
        <br>동해물과 백두산이 마르고 닳도록<br>
        <br>하느님이 보우하사 우리나라 만세<br>
        <br>무궁화 삼천리 화려 강산<br>
        <br>대한사람 대한으로 길이 보전하세<br>
        <br><br>
        <br>남산 위에 저 소나무 철갑을 두른듯<br>
        <br>바람서리 불변함은 우리 기상일세<br>
        <br>무궁화 삼천리 화려 강산<br>
        <br>대한사람 대한으로 길이 보전하세<br>
        <br><br>
        <br>가을 하늘 공활한데 높고 구름 없이<br>
        <br>밝은 달은 우리 가슴 일편단심일세<br>
        <br>무궁화 삼천리 화려 강산<br>
        <br>대한사람 대한으로 길이 보전하세<br>
        <br><br>
        <br>이 기상과 이 마음으로 충성을 다하여<br>
        <br>괴로우나 즐거우나 나라사랑하세<br>
        <br>무궁화 삼천리 화려 강산<br>
        <br>대한사람 대한으로 길이 보전하세<br>
        <br>--- 애국가 가사 END ---<br><br>
    </div>
    
    <input type="button" onclick="scrollToBottom();" value="최하단으로 스크롤 하기">
    <br><br>
    <input type="button" onclick="scrollToTop();" value="최상단으로 스크롤 하기">
</body>
cs


위와 같이 div 안에 애국가 가사를 입력 했습니다. 

div 스타일에 height 와 width 를 지정했는데요.  height 를 200px 만 지정하여 스크롤바가 생기도록 했습니다. 


아래쪽에는 버튼 두개를 만들어 onclick 이벤트 발생 시 scrollToBottom() 함수와 scrollToTop() 함수를 호출 하도록 작성 했습니다. 




 javascript 함수


1
2
3
4
5
6
7
8
9
10
<script type="text/javascript">
    // 텍스트의 최하단으로 scroll 하기  
    function scrollToBottom() {
        $('#scrollTestDiv').scrollTop($('#scrollTestDiv')[0].scrollHeight);
    }
    // 텍스트의 최상단으로 scroll 하기
    function scrollToTop(){
        $('#scrollTestDiv').scrollTop(0);
    }
</script>
cs


HTML body 부에서 설정한 버튼이 호출 하는 함수들을 작성 했습니다. 


▼ scrollToBottom() 함수

id 값이 scrollTestDiv 인 요소를 찾아 scrollTop() 한 결과 값으로 이동 합니다. 

scrollTop 은 요소의 맨 위에서 보이는 내용까지의 거리를 측정한 값입니다.

만약 스크롤 최상단에 위치한 경우라면 scrollTop() 의 값은 0 입니다. 


참조) https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTop


여기서는 scrollTop() 인자값으로 지정된 id 값의 scrollHeight 는 요소의 모든 컨텐츠가 스크롤 없이 모두 펼쳐져 한눈에 보여지기 위한 높이를 의미 합니다. 

쉽게 이야기 하자면 위 예제의 div 높이가 200px 로 고정 되어 있지만 만약 고정되지 않고 스크롤이 없는 상태라면 924 px 로 늘어나게 됩니다. scrollHeight 는 바로 924px 이 되는 겁니다.


참조) https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight



▼ scrollToTop() 함수

앞서 언급 했듯이 요소의 최상단에 위치 시키면 되므로 scrollTop(0) 을 하면 됩니다. 



▽▽▽ 결과 화면 (테스트 해보세요) ▽▽▽


--- 애국가 가사 START ---


동해물과 백두산이 마르고 닳도록

하느님이 보우하사 우리나라 만세

무궁화 삼천리 화려 강산

대한사람 대한으로 길이 보전하세



남산 위에 저 소나무 철갑을 두른듯

바람서리 불변함은 우리 기상일세

무궁화 삼천리 화려 강산

대한사람 대한으로 길이 보전하세



가을 하늘 공활한데 높고 구름 없이

밝은 달은 우리 가슴 일편단심일세

무궁화 삼천리 화려 강산

대한사람 대한으로 길이 보전하세



이 기상과 이 마음으로 충성을 다하여

괴로우나 즐거우나 나라사랑하세

무궁화 삼천리 화려 강산

대한사람 대한으로 길이 보전하세

--- 애국가 가사 END ---







 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D



블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,



HTML input 필드에 표기되는 숫자를 평상시에는 금액 표기법으로 콤마 ( , ) 를 추가 하도록 하고 포커싱이 되어 수정 모드가 되었을 때는 콤마( , )를 제거하여 숫자만 입력 하는 모드로 변경하는 방법에 대해 알아 보겠습니다. 



위와 같이 동작하도록 해보겠습니다. 



※ 금액 입력 시 숫자만 표기

※ 포커스가 사라지면 콤마를 추가하여 금액 표기법으로 표현


위 input 필드에 직접 숫자 입력 후 포커스를 다른 곳으로 이동 시키면 금액 표기법과 같이 세자리마다 콤마 ( , ) 찍혀 나옵니다. 




▼ HTML body 부 


1
2
3
4
5
6
7
<div style="background-color: aqua; padding: 10px;">
    <p>※ 금액 입력 시 숫자만 표기</p>
    <p>※ 포커스가 사라지면 콤마를 추가하여 금액 표기법으로 표현</p>
    <div style="margin-top: 20px; margin-right: 20px; margin-left: 20px;">
        <input id="inputPrice" type="text" 
style="text-align: right; padding-right: 10px;" value="0"> 원
    </div>
</div>
cs


input 필드 id 를 inputPrice 로 지정 했습니다. 

이 input 필드가 focus 되거나 blur 되는 순간에 콤마( , )를 추가 하거나 빼주는 작업을 합니다. 



▼ jQuery 코드 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
jQuery(document).ready(function($){    
    $('#inputPrice').on('focus'function(){
        var val = $('#inputPrice').val();
        if(!isEmpty(val)){
            val = val.replace(/,/g,'');
            $('#inputPrice').val(val);
        }
    });
    
    $('#inputPrice').on('blur'function(){
        var val = $('#inputPrice').val();
        if(!isEmpty(val) && isNumeric(val)){
            val = currencyFormatter(val);
            $('#inputPrice').val(val);
        }
    });    
});
cs



$('#inputPrice').on('focus', function(){

...

});


위 코드는 id 값이 inputPrice 인 요소가 focus 되면 어떠한 동작을 하겠다는 jQuery 코드 입니다. 


var val = $('#inputPrice').val();

inputPrice 필드의 value 값을 가져와서 val 이라는 변수에 담아 줍니다. 

이 값이 공백문자거나 null 이 아니라면 (공백문자 여부 조회 코드는 아래 첨부하는 전체 소스 참조하세요)


val = val.replace(/,/g, '');

inputPrcie 필드의 value 값에서 콤마 ( , ) 를 제거 하여 공백으로 변환합니다. 


$('#inputPrice').val(val);

콤마를 제거한 val 값을 inputPrice 의 value 값으로 지정합니다. 




이렇게 하면 input 필드가 focus 된 경우에대한 처리가 끝납니다. 





$('#inputPrice').on('blur', function(){

...

});


위 코드는 id 값이 inputPrice 인 요소가 blur (포커스를 잃은 경우) 어떠한 동작을 하겠다는 것을 정의하는 jQuery 코드 입니다. 


var val = $('#inputPrice').val();

inputPrice 필드의 value 값을 가져와서 val 이라는 변수에 담아 줍니다. 


if(!isEmpty(val) && isNumeric(val)){  ...  }

이 값이 공백문자거나 null 이 아니고 숫자라는 조건을 만족 하는 경우 


val = currencyFormatter(val);

currencyFormatter 라는 함수에 val 값을넣어 숫자를 금액 포맷으로 변경하여 리턴 합니다. 


$('#inputPrice').val(val);

금액 포맷으로 리턴된 값을 input 필드의 value 값으로 지정하여 필요한 작업을 완료 합니다. 



1
2
3
4
5
6
7
function isEmpty(value){
    if(value.length == || value == null){
        return true;
    }else {
        return false;
    }
}
cs


위 코드는 입력 받은 값의 공백문자 여부 및 null 값 여부를 체크후 boolean 값으로 리턴하는 코드입니다. 



1
2
3
4
function isNumeric(value){
    var regExp = /^[0-9]+$/g;
    return regExp.test(value);
}
cs


위 코드는 입력 받은 값을 정규표현식을 이용하여 숫자 값 여부를 체크 하여 결과를 boolean 값으로 리턴 하는 코드 입니다. 


자바스크립트에서는 test() 함수를 이용하여 정규표현식과 일치 하는 문자가 있는지 여부를 확인 및 결과를 true / false 로 리턴 합니다. 



1
2
3
function currencyFormatter(amount){
    return amount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
}
cs


입력 받은 값을 뒤에서 세자리 마다 콤마( , ) 를 추가하는 정규표현식을 활용한 코드 입니다. 

정규 표현식 관련 내용은 java 에서 다뤘으니 참조 하세요.

▶ 정규표현식 관련 포스팅 보러가기(클릭)




전체 코드 (참고하세요)


test.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
 
<!-- <script src="jquery-3.3.1.min.js"></script> -->
<script type="text/javascript">
    
    jQuery(document).ready(function($){ 
        $('#inputPrice').on('focus'function(){
            var val = $('#inputPrice').val();
            if(!isEmpty(val)){
                val = val.replace(/,/g,'');
                $('#inputPrice').val(val);
            }
        });
        
        $('#inputPrice').on('blur'function(){
            var val = $('#inputPrice').val();
            if(!isEmpty(val) && isNumeric(val)){
                val = currencyFormatter(val);
                $('#inputPrice').val(val);
            }
        });
        
    });
    // Null check
    function isEmpty(value){
        if(value.length == || value == null){
            return true;
        }else {
            return false;
        }
    }
    // Number check with Regular expression
    function isNumeric(value){
        var regExp = /^[0-9]+$/g;
        return regExp.test(value);
    }
    // 숫자 세자리 마다 콤마를 추가하여 금액 표기 형태로 변환
    function currencyFormatter(amount){
        return amount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
    }
    
</script>
    
</head>
 
<body style="padding: 20px;">
    <p>※ 금액 입력 시 숫자만 표기</p>
    <p>※ 포커스가 사라지면 콤마를 추가하여 금액 표기법으로 표현</p>
    <div style="margin: 20px;">
        <input id="inputPrice" type="text" 
style="text-align: right; padding-right: 10px;" value="0"> 원
    </div>
</body>
 
</html>
cs




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D

블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,