2010-12-28 4 views
0

텍스트 입력 요소에 jQuery 자동 완성 스크립트를 사용하고 있지만 변수가 업데이트 될 때 원본 URI의 lang 변수가 업데이트되지 않는 것이 문제입니다.jQuery 자동 완성 원본 매개 변수가 업데이트되지 않습니다.

무선 입력 요소를 클릭 할 때마다 lang의 값이 업데이트되고 그 다음에 자동 입력 코드를 트리거하는 텍스트 입력 요소에 내용을 입력합니다. 이상하게도 항상 업데이트 된 값이 아니라 "en"값을 사용합니다.

누구든지 내 코드에 대한 더 나은 접근법이나 수정 방법을 알고 있습니까?

코드 : 당신은 당신이 값을 변경하지 않을 경우, 선택을 클릭하면

var lang = 'en'; 

$('input[name="language"]').click(function() 
{ 
    lang= $(this).val(); 
}); 

$("#query").autocomplete({ 
    source: "domain.com/suggest.php?language=" + lang, 
    minLength: 1 
}); 

답변

1

이 솔루션은 사용자 정의를 만들 AJAX 호출하는 것입니다

source: function(request, response) 
    { 
     $.ajax({ 
      url: 'domain.com/suggest.php', 
      dataType: "json", 
      data: {language: $('input[name="language"]:checked').val(), term: $('#query').val()}, 
      success: response 
     }); 
    }, 

희망이 너무 다른 사람을 도움이됩니다. 다른 라디오 버튼을 선택 때마다, 자동 완성이 다시 초기화되도록

1

click 이벤트가 발생합니다. 그래서 lang은 아마도 select의 현재 값으로 재 지정 될 것입니다. 영어의 경우 선택 값을 변경 한 후에 영어로 남아있게됩니다. 당신이 아마 할 말은있다 :

$('input[name="language"]').change(function() 
{ 
    lang= $(this).val(); 
}); 
+1

가 왜 그냥 $ ('입력 [이름을 사용 = "language"] '). val() 대신에 lang var를 즉시 사용할 수 있습니까? – Mantar

+0

체크 된 라디오 버튼 ('$ ('input [name = "language"] : checked') .val()')에서 값을 가져 오는 것이 효과가 없기 때문에. 그것이 라디오 버튼의 체크 된 옵션과 관련이 있다고 생각했기 때문에 나는이 메소드로 문제를 해결하기를 바랐다. 불행히도 그 결과는 똑같습니다. – EarthMind

+0

$ ('input [name = "language"]') .val()이 선택한 값을 반환하지 않으면 문제가있는 것입니다. (console.log() 및 Firebug를 사용하여 확인하십시오.) – Mantar

0

당신은 클릭 또는 변경 함수 내에서 자동 완성 기능을 포함한다 :

var lang = 'en'; 

$('input[name="language"]').click(function() 
{ 
    lang= $(this).val(); 


$("#query").autocomplete({ 
    source: "domain.com/suggest.php?language=" + lang, 
    minLength: 1 
}); 

});