2014-04-12 2 views
0

나는 <"select'>을 가지고 있으며, 몇 가지 옵션과 onChange 리스너가 있습니다. 옵션을 선택하면 숨겨진 일부 필드에 특정 값이 설정됩니다. 따라서이 변경 이벤트가 발생하지 않으면 해당 필드의 값이 초기 상태, 즉 0으로 유지된다는 의미입니다.선택 값 변경이 발생한 후에 만 ​​입력 값을 가져옵니다.

달성하고자하는 것은 onchange가 발생했을 때만 숨겨진 필드 값을 의미합니다. 설정되어, 나는 그 숨겨진 필드의 값을 얻을 이것은 내가 지금까지 무엇을 가지고

데이터와 일부 아약스를 수행,이 후

<select class="form-control choosedegree" name="sem" id="semester"> 
     <option value="" selected="selected" disabled>Select Semester</option> 
     <option value="1">Year 1, Semester 1</option> 
     <option value="2">Year 1, Semester 2</option> 
     <option value="3">Year 2, Semester 1</option>    
    </select> 

해고했고, 완료

$('select#semester').on('change', function(){}); 

그러면 숨겨진 입력을 찾아 onChange의 결과로 얻은 새 값을 설정합니다.

$('div.tab-content div.tab-pane.active form').find('input[type=hidden]').val() 

어떻게 달성 할 수 있습니까? 어떤 종류의 도움이라도 대단히 감사하겠습니다. 이 같은

답변

2

수행

$('select#semester').on('change', function(){ 

if($(this).val() != "") 
{ 

// send ajax call here 
setTimeout(SendAjaxCall,3000); // execute SendAjaxCall after 3 secs 
    } 

}); 


function SendAjaxCall() 
{ 
var val = $('div.tab-content div.tab-pane.active form').find('input[type=hidden]').val(); 
} 
+0

내 explaination이 설명 된 바와 같이, 숨겨진 필드에서 새 값을 얻기 위해, onchange를이, 위에 함수를 코드 @Yunus –

+1

발생해야합니다 더 큰 그림의 한 부분입니다 'change' 이벤트가 발생할 때 화재가 발생합니다. 그래서 기술적으로 그것은 여러분이 요구하는 것을합니다. 어쩌면 숨겨진 입력 변경 사항도 같은 이벤트에 바인딩되어 사전에 실행됩니다.이 경우 함수를 setTimeout (theFunction() {0})에 넣으면 다른 모든 바운드 이벤트가 먼저 실행되도록하여 문제를 해결할 수 있습니다 – Barney

+0

@ 바니 말이 맞아 ... SetTImeout을 사용할 수있다 –

관련 문제