2012-12-25 5 views
2

사람들이 새 팀을 선택하고 그 위치를 입력 할 수있는 양식을 만들거나 목록에서 팀을 선택하면 입력을 원합니다. 무능하게하십시오 - 그리고 선정 된 팀의 위치는 입력 상자에서 주어질 것입니다. 지금까지 내 코드입니다. 작동하지 않습니다. :(별도의 JS 파일에서매시업 : 선택 상자/사용 안 함 입력/정보 얻기 데이터베이스에서

<select id="chooseTeam" name="chooseTeam" data-placeholder="Select Team"> 
    <option></option> 
    {% for team in teams %} 
    <option>{{team.name}}</option> 
    {% endfor %} 
    <option>New Team</option> 
</select> 

<input type="text" id="input_location" name="input_location"/> 

:.

분명히, AJAX이 필요합니다

$(document).ready(function() { 
    $('#chooseTeam').on('blur', function() { 
     if (form.chooseTeam.value != "New Team" && form.chooseTeam.value != "Select Team") { 
      $("#input_location").html("{{team.location}}"); 
      document.getElementById("input_location").disabled = true; 
     } 
    }); 
}); 

MINI-UPDATE 나는 3 (자바 스크립트에 새로운 오전 며칠이 지나지 않아 AJAX가 어떻게 작동하는지 알지 못하지만이 순간에 시도해 보려고 노력 중입니다.


오, 그리고 모두 즐거운 성탄절입니다!

는 "# 코드 -에 - 크리스마스"

+0

은 완전한 자바 스크립트 코드입니까, 아니면 이벤트 처리기의 함수로 싸여 있습니까? –

+0

팁을 주셔서 감사합니다. – JoseBazBaz

답변

1

당신이 장고와 jQuery를 사용하고있는 것으로 보인다. 그게 사실이야? 지금 당장은 자세한 대답을 드릴 수는 없지만 클라이언트 측 코드와 서버 측 코드를 혼합하기 때문에 다음 줄의 코드는 작동하지 않습니다. 그것은 단지 브라우저에서 클라이언트 측에 존재하기 때문에

$("#input_location").html("{{team.location}}"); 

표현 {{team.location}}는 장고에 의해 평가 될 수 없다. 장고가 클라이언트 측에서 선택된 것을 평가하기를 원하면 서버와 클라이언트 사이에서 Ajax 호출을 $.ajax()으로 사용해야합니다.

또한 모든 코드에 대해 jQuery 선택기를 사용하지 않는 이유는 무엇입니까? 다음과 같이하십시오 :

$(document).ready(function() { 
    $('#chooseTeam').on('blur', function() { 
     var currentTeam = $(this).val(); 
     if (!$.inArray(currentTeam, ['New Team', 'Select Team'])) { 
      $("#input_location").attr('disabled', 'disabled'); 
     } 
    }); 
}); 
+0

기술적으로 Flask와 jQuery가 있지만이 경우에는 Flask와 Django의 차이가별로 없습니다. 실제로 자바 스크립트를 처음 접했을 때 - 3 일 전에 배우기 시작했습니다.하지만 ** $. ajax() ** 시도해 봅니다. – JoseBazBaz

+0

그래, 모든 것에 JQuery를 사용해야합니다. 아직 JS에 익숙하지 않습니다. 믹스 앤 매시 내 JS 및 JQuery 롤. – JoseBazBaz

+1

@JoseBazBaz 나는 그것도 꽤 새롭다. jQuery의 문서화가 더 좋을 수 있었기 때문에 필자도이 문제를 해결할 시간이 필요했다. 그러나 일단 '클릭'하면 꽤 쉽습니다. :) – pemistahl