2016-06-13 1 views
0

(처음으로) 문자를 누르면 경고보다 빈 값이 인쇄됩니다 ... 어떻게 가능합니까? 난 ... 이해가 안keydown()을 사용하면 왜 값이 비어 있는지 첫 번째 문자 다음에 오는 이유는 무엇입니까?

$('#search-vulc').on('keydown', function() { 
    var textinsert = ($(this).val()).toLowerCase(); 
    alert(textinsert); 
}); 

여기

또한 jsfiddle 예를 들어이 ... 때 처음으로 언론이다 나는 또한 첫 번째 문자를 인쇄 할 수있는 방법을 가르쳐주세요 : https://jsfiddle.net/06xg4c78/1/

영어로 죄송합니다. 조언 해 주셔서 감사합니다. 대신

+6

값이 업데이트되기 전에 keydown 이벤트가 발생하면'keyup' 또는'input' 이벤트를 사용하십시오. ead –

+0

console.log를 사용하여 경고하지 말고 디버그하십시오. – j08691

+0

keuyp 이벤트 사용 –

답변

1

사용 keuyp 이벤트 :

새로운 캐릭터가 추가되기 전에 keypress events 해고되기 때문입니다 요소 값 (그래서 fi 값 첫 번째 문자가 추가되기 전에 먼저 keypress event이 실행되고 값은 여전히 ​​비어 있습니다. 대신 문자를 추가 한 후 해고되는 keyup을 사용해야합니다. 당신이 keydown 기능을 사용하면 DOM이이 값이 입력 얻을 것이다 있도록 키를 떠날 때 이벤트를 발생 입력 값

사용 keyup을 취득하기 전에

$('#search-vulc').on('keyup', function() { 
    var textinsert = ($(this).val()).toLowerCase(); 
    alert(textinsert); 
}); 
+0

keypress는 keydown이 아닙니다. –

+1

@Borja 나는 그렇게 생각하지 않습니다. 캐릭터 전에 어떤 행동을하고 싶다면 use keydown을 입력하십시오. 입력 한 문자 뒤에 몇 가지 조치를 수행하려면 keyup을 사용하십시오 - 요구 사항에 따라 –

0

사용 keyup :

$('#search-vulc').on('keyup', function() { 
 

 
    var textinsert = ($(this).val()).toLowerCase(); 
 
    alert(textinsert); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 

 
<input type="text" size="150" style="width: 150px;" name="qu" id="search-vulc">

업데이트 바이올린 : https://jsfiddle.net/06xg4c78/2/

0

가 작동

$('#search-vulc').on('keyup', function() { 
 
    var textinsert = ($(this).val()).toLowerCase(); 
 
    alert(textinsert); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<input type="text" size="150" style="width: 150px;" name="qu" id="search-vulc">

관련 문제