2010-08-22 9 views
1

django를 사용하여 웹 페이지를 개발 중이며 jQuery를 사용하여 양식에 일부 자바 스크립트를 추가하고 싶습니다. 기본적으로 다른 선택에 따라 양식에서 옵션을 선택하고 싶습니다. 옵션의 값이 django에 의해 동적으로 생성되기 때문에 옵션의 텍스트가 아니라 옵션의 값을 사용해야합니다.텍스트로 옵션 선택

내 코드의 추출 :

자바 스크립트

 $("#id_propietario").change(
     function() { 
      if ($("#id_propietario :selected").text() == '{{ usuario.username }}') { 
       alert('test'); 
      } else { 
       $("#id_adeudado").val($("#id_adeudado option[text='{{ usuario.username }}']").val()); 
      } 
     } 
    ); 

HTML 양식 요소

<p><label for="id_propietario">Propietario:</label> <select name="propietario" id="id_propietario"> 
<option value="" selected="selected">---------</option> 
<option value="1">elio</option> 
<option value="2">up1</option> 
<option value="3">up2</option> 
</select></p> 
<p><label for="id_adeudado">Adeudado:</label> <select name="adeudado" id="id_adeudado"> 
<option value="" selected="selected">---------</option> 
<option value="1">elio</option> 
<option value="2">up1</option> 
<option value="3">up2</option> 
</select></p> 

내가 jQuery를 1.4을 사용하고이 문제를 분명히 1.3로 변경되었습니다 직접 사용할 수있는 곳의 숫자는

입니다.
$("#id_adeudado").val('{{ usuario.username }}'); 

django는 {{usuario.username}}을 현재 사용자 이름으로 바꿉니다. jQuery가 text = 'value'선택기를 사용하여 option 요소를 선택하지 않기 때문에 코드가 작동하지 않습니다. 이 문제를 어떻게 극복 할 수 있습니까? 사전에

덕분에 PS

: 그것은

나를

을 위해 작동하지 않는 '값'선택 = 대신 텍스트 포함하여, 작동 뭔가를

답변

1

당신은 (당신의 첫 번째 코드 블록) 선택한 <option>의 텍스트를 얻기 위해 다음과 같이 확인할 수 있습니다

$("#id_adeudado :selected").text(); 

을 그리고 이것은 텍스트에 의해 선택된 <option> 값을 설정 :

$("#id_adeudado option").filter(function() { 
    return this.value == '{{ usuario.username }}'; 
}).attr('selected', true); 
+0

느린 아래쪽에서 오늘 너무 많은 오타를보고 있습니다 ;-) –

+1

@Andy - 정신이 산만 해짐 : http://stackoverflow.com/questions/3541541/how-to-know-which-jquery-button-was- 클릭 - 인 -리스트 컨텍스트 jQuery UI는 누가 그 현명한 결정을 내렸는 지 모를 가치를 지워 버렸다. '( –

+0

이 작동하고 jQuery의 철학을 이해하는 데 도움이됩니다. 감사! – eliocs

1

jQuery를

을 그냥 발견하여 내 처음
$("#id_adeudado option[text='{{ usuario.username }}']") 

작업

$("#id_adeudado option:contains('{{ usuario.username }}')")