2012-09-11 4 views
0

이벤트를 트리거 후 나는이어떻게 내가 JQuery와 포스트 백을

$('#new-address select[name=\'country_id\']').val(data['country_id']).trigger('change'); 
$('#new-address select[name=\'zone_id\']').val(data['zone_id']); 

같은 선택 입력 유형의 값을 변경하고 선택한 변경 한 후있어 JSON으로 응답을받은 후 선택의 옵션을 선택합니까 가치 상태 선택 입력을 채우기 위해 이벤트 '변경'을 실행하고 그 후에 상태 선택 입력의 선택된 값을 변경하려고하지만 위의 코드에서 상태 선택 값을 변경하지 않지만 상태를 채우는 것입니다.

그래서 나는 컨트롤이 함수에 트리거 이후 돌아 오지 않아 그래서 경고있어이 테스트 후 좋아하는이

$('#new-address select[name=\'country_id\']').val(data['country_id']).trigger('change'); 
alert('came here'); 
$('#new-address select[name=\'zone_id\']').val(data['zone_id']); 

를 내가 여기오고 여부를 확인하기 위해 하나의 경고를 넣어 테스트하거나하지 않을 수 있습니다 생각 여기서 OK를 클릭하면 상태 값이 바뀌고 싶다고 말했습니다.

내 접근 방식에있어 잘못된 점과 경고를 추가 한 후 왜 제대로 작동하는지 이유는 무엇입니까? 내가 원하는 것을 얻으려면 어떻게해야합니까?

미리 감사드립니다.

+2

자바 스크립트가 순차적으로 한 줄씩 실행되고 아약스 호출이 다시 돌아올 때까지 시간이 걸릴 수 있습니다. 즉, 아약스 호출의 콜백에서 선택을로드해야 할 때 코드를 원한다면 알려주십시오. 알리미가 시퀀스를 일시 중지 했으므로 회신을 보내 주셔서 감사합니다. – abhijit

+0

@abhi. 코드를 게시 할 수 있습니까? 시도하고 있지만 여전히 잘 작동하지 않습니다. – Pankaj

+1

probs가 없습니다. http://stackoverflow.com/questions/815103/jquery-best-practice-to-populate-drop-down just use 링크의 코드를 첫 번째 선택 변경 이벤트에 넣고 첫 번째 선택에서 매개 변수를 전달합니다. – abhijit

답변

0

나는 그것이 틀렸거나 틀린 길인지 모르지만 그것은 나를 위해 일했다. 자바 스크립트가 순차적으로 실행 @abhi 제안 그래서 나는이 내 코드를 변경 :

$('#new-address select[name=\'country_id\']').val(data['country_id']); 
var selectedstate = data['zone_id']; 
$.get(
     "index.php?route=common/home/country&token=<?php echo $token;?>", 
     { 'country_id': data['country_id'] }, 
     function(json) { 
      html = '<option value=""><?php echo $text_select; ?></option>'; 
      if (json['zone'] != '') { 
       for (i = 0; i < json['zone'].length; i++) { 
        html += '<option value="' + json['zone'][i]['zone_id'] + '"'; 
        if (parseInt(json['zone'][i]['zone_id']) == parseInt(selectedstate)) { 
         html += ' selected="selected"'; 
        } 
        html += '>' + json['zone'][i]['name'] + '</option>'; 
       } 
      } else { 
        html += '<option value="0" selected="selected"><?php echo $text_none; ?></option>'; 
        } 
      $('#new-address select[name=\'zone_id\']').html(html); 
     }, 
     'json' 
); 

을 나는 국가를 선택 것이 HTML을 만들고있는 동안 국가의 선택된 값이 설정되어 있기 때문에 내가 원하는 걸 얻었 이렇게.

0

이것은 ajax 호출의 async 속성과 관련이 있습니다. 권하지는 않으나 false로 설정하면 정상적으로 작동합니다. 또는 call back functions을 대신 사용하는 방법을 알아야합니다.

관련 문제