2012-12-18 4 views
0

국가 목록이있는 html 드롭 다운 목록이 있습니다. 이제 목록의 기본값으로 현재 국가를 설정하려고합니다. Geolocation을 사용하여 국가를 가져 오는 JavaScript 코드를 발견했습니다.자바 스크립트를 사용하여 HTML 속성 값 설정

내 코드 :

function getCountry(var name) { 
    if(name==geoip_country_name()) { 
     return "selected"; 
    } 
} 

는 다음 나는 옵션 목록의 selected 속성을 설정해야합니다.

<option value="Sri Lanka" selected="getCountry('sri Lanka')">Sri Lanka</option> 

하지만이 올바르지 않습니다 :

나는이 시도.
기본적으로 JavaScript 함수를 사용하여 선택한 속성 값을 설정하려고합니다.

어떻게하면됩니까? 당신이 당신의 문제를 해결해야 JQuery와 다음 줄을 사용하는 경우

+0

요나단이란 무엇입니까? – user1688181

+0

@ JonathandeM. 왜 OP는 기본값 (한 번) 만 설정하려는 경우 변경 이벤트를 수신해야합니까? 또한 여기서는 jQuery를 사용하지 않습니다. –

답변

4

window.onload 이벤트를 사용하여, 그냥 드롭의 값을 설정 : 당신이 변수 country에 원하는 국가 이름을 저장 한 가정, 대신을 시도 할 수 있습니다. 하드 코딩 된 국가 이름은 지역 서비스와 다를 수 있습니다.

<script> 
    window.onload = function(){ 
     document.getElementById("country").value = geoip_country_name(); 
    } 
</script> 

<select id="country" name="country"> 
<option value="Sri Lanka">Sri Lanka</option> 
<option value="UK">UK</option> 
<option value="USA">USA</option> 
<select> 
+0

와우 ..! 그 일, 고마워. – user1688181

0

은 : 선택 목록을 초기화하는 동안, 소문자

$('select').val(geoip_country_name()); 

geoip_country_name하면 반환 이름을 각 옵션에 대한 값은 소문자로합니다.

0

기본적으로 당신이 이런 식으로 작업을 수행 할 수 있습니다 당신의 선택이 렌더링 된 후에

<html> 
<body> 
    <select id="country"> 
    <option id="germany" value="Germany">DE</option> 
    <option id="uk" value="UK">UK</option> 
    <option id="usa" value="USA">USA</option> 
</select> 
<script> 
    var selectedCountry = 'uk'; //getCountry 
    var index = document.getElementById(selectedCountry).index; 
    document.getElementById("country").selectedIndex=index; 
</script> 
스크립트를 시작합니다.

이 예제는 모범 사례가 아닐 수 있습니다. 또한 모든 브라우저에서 작동하는지 잘 모르겠습니다 (Opera 작품). JQuery, Mootools, ...와 같은 적절한 프레임 워크를 사용할 수 있습니다.

0

selected 속성은 JS 코드로 자동 평가되지 않습니다.

var country = "Sri Lanka"; 
var select = document.getElementById('myselect'); //Change to the ID of your select element 
for (var i = 0; i < select.options.length; i++){ 
    if(select.options[i].value == country) 
     select.selectedIndex = i; 
} 
관련 문제