selectbox를 변경할때 이전값을 확인하는 소스 입니다. Show
Posted by husks 1. change 이벤트
2. bind 를 이용한 이벤트
3. on 을 이용한 이벤트
* change 이벤트시 이전값 가져오기 웹개발/Javascript 2014. 8. 6. 11:33
참고) http://stackoverflow.com/questions/4076770/getting-value-of-select-dropdown-before-change jquery, selectbox change시 confirm() 사용하였을 경우.... (특히 수정화면?) confirm() --> No("취소") 선택 시 취소 했음에도 원래의 값으로 돌아오지 않음... 그래서 최초 선택되어 있던 값으로 되돌리기(undo) 위해서 change() + focus() 이벤트를 사용하면 해결됨.... $(document).ready(function(){ //코드 변경 var prev_val ; $('#cd').focus(function(){ prev_val = $(this).val(); }).change(function(){ $(this).blur(); if(confirm("입력된 값이 초기화 됩니다. 변경하시겠습니까?")){ // Todo alert('changed'); }else{ // 기존에 선택한 값으로 Undo $(this).val(prev_val); alert('unchanged'); return false; } }); }); 내가 달성하고자하는 것은 onchange 이벤트에서 스택으로 변경할 때 (즉, 스택으로 변경했을 때) 현재 My 옵션이 선택되어 있다고 가정 해 보겠습니다.이 경우 이전 값을 원합니다. 이것이 어떻게 달성 될 수 있습니까? 편집 : 내 경우에는 같은 페이지에 여러 개의 선택 상자가 있고
모든 항목에 동일한 항목이 적용되기를 원합니다. 또한 모든 선택은 ajax를 통해 페이지를로드 한 후에 삽입됩니다. 포커스 이벤트를 변경 이벤트와 결합하여 원하는 것을 달성하십시오. 실례 : http://jsfiddle.net/x5PKf/766 이것에 전역 변수를 사용하지 마십시오-여기에 데이터에 이전 값을 저장하십시오 예 : http://jsbin.com/uqupu3/2/edit 심판의 코드 : 방금 페이지에 많은 선택이 있음을 보았습니다.이 방법은 각 선택에 대해 선택 값의 데이터에 이전 값을 저장하기 때문에 효과가 있습니다. 나는 Avi Pinto의 솔루션을 사용합니다. 초점을 사용하는 것은 유효한 해결책이 아닙니다. 처음에는 옵션을 변경할 때 작동하지만 해당 선택 요소를 유지 한 상태에서 “위”또는 “아래”키를 누릅니다. 포커스 이벤트를 다시 거치지 않습니다. 따라서 솔루션은 다음과 같이 보입니다.
답변손으로 값을 추적하십시오.
답변
답변이벤트 “live”를 사용하고 있는데 솔루션은 기본적으로 Dimitiar와 유사하지만 “focus”를 사용하는 대신 “click”이 트리거 될 때 이전 값이 저장됩니다.
답변드롭 다운 ‘변경시’액션 함수를 작성하기 전에 현재 선택된 드롭 다운 값을 선택한 jquery로 전역 변수에 유지하십시오. 함수에서 이전 값을 설정하려면 전역 변수를 사용할 수 있습니다.
|