2011-04-05 2 views
0

A] Краткое описание проблемы:Выбор значения в выпадающем списке с помощью JavaScript

Попытка заранее выбрать страну пользователей на странице загрузки

B] Детали:

1] Я использую javascript maximinds, чтобы узнать графство пользователей.

2] У меня есть раскрывающийся список, который содержит список из 225 стран.

3] В разделе javascript моей страницы HTMLr я пытаюсь выбрать страну пользователей из раскрывающегося списка.

Но страна не получает выбран

C] фрагмент кода:

<select name="country_name" id="id_country_name"> 
<option value="" selected="selected">---------</option> 
<option value="Afghanistan">Afghanistan</option> 
<option value="Aring land Islands">Aring land Islands</option> 
</select> 


<!-- including the geoip javascript library --> 
<script src="http://j.maxmind.com/app/geoip.js" type="text/javascript"></script> 
<!-- By default, we will select users country -->  
<script type="text/javascript" language="JavaScript"> 
document.getElementById(geoip_country_name()).selected = true 
</script> 

Спасибо,

[Изменить # 1]

Пробовал следующий JQuery кода, но это не заполняет раскрывающийся список:

<!-- including the geoip javascript library --> 
    <script src="http://j.maxmind.com/app/geoip.js" type="text/javascript"></script> 
    <script type="text/javascript" language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
    <script type="text/javascript"> 
    $(function() { 
     $("option[value='" + geoip_country_name() + "']").attr('selected', 'selected'); 
    }); 
</script> 

[Изменить # 2]

Пробовал $ ("# id_country_name"). Вал (geoip_country_name()) ;,

<div id="userDataForm"> 
    <form method="POST" action="/UserReporting"> 
    <table> 
     <!-- Printing the forms for users country, city --> 
     <tr><th><label for="id_country_name">Country name:</label></th><td> 
     <select name="country_name" id="id_country_name"> 
    <option value="" selected="selected">---------</option> 
    <option value="Afghanistan">Afghanistan</option> 
     <option value="Aring land Islands">Aring land Islands</option> 
     <option value="Albania">Albania</option> 
     </select> 
     </td></tr> 
     <tr><th> 
     <label for="id_city_name">City name:</label></th><td><input type="text" name="city_name" id="id_city_name" /></td></tr>  
</table> 

<input type="submit" name="report_up" value= "Report Up"> 
<input type="submit" name="report_down" value= "Report Down"> 
</form> 

<!-- including the geoip javascript library --> 
<script type="text/javascript" language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"> 
</script> 
<script src="http://j.maxmind.com/app/geoip.js" type="text/javascript"> 
</script> 
<script type="text/javascript"> 
    $(function() { 
     $("#id_country_name").val(geoip_country_name()); 
    }); 
</script> 
+0

Вы пытаетесь получить к ссылке, варианты по идентификатору, но они не имеют идентификаторов, чтобы дать каждому параметру; идентификатор из Имя страны. Так как текст должен соответствовать точно, вам может быть лучше использовать все строчные буквы, поэтому: , а затем: document.getElementById (geoip_country_name(). ToLowerCase()) ... – RobG

ответ

1

document.getElementById вызова будет работать только тогда, когда каждый <option> в вашем HTML имел название страны в качестве идентификатора (заменяющего пространство с «_» или что-то подобное):

<select name="country_name" id="id_country_name"> 
<option value="" selected="selected">---------</option> 
<option id="Afghanistan" value="Afghanistan">Afghanistan</option> 
<option id="Aring_land_Islands" value="Aring land Islands">Aring land Islands</option> 
</select> 

Однако, я склоняюсь к этому сближаться с JQuery, так как он не требует предоставления каждой опции свой собственный идентификатор:

$(function() { 
    $("#id_country_name").val(geoip_country_name()); 
}); 
+0

Я попробовал ваше предложение и вставил код в «Редактировать # 1», но это не сработало, и в раскрывающемся списке отображается «------» в качестве выбранного значения. – bhavesh

+0

@ lance Извините. Вместо этого попробуйте использовать «val». Я обновил свой ответ. –

+0

@ lance убедитесь, что идентификатор select на самом деле «id_country_name». Я не уверен, что это был просто placeholder в вашем примере. Я тестировал это, и он работает корректно, если значение из 'geoip_country_name' соответствует точно атрибуту' value' для параметра. –

1

Попробуйте

document.getElementById('id_country_name').selectedIndex=index; 

где index - целое число, соответствующее желаемому выбору.

+0

Thankyou @matthewh за ответ. У меня есть имя страны из вызова метода «geoip_country_name()», но не значение индекса. Так, например, «geoip_country_name()» вернет такое имя, как «Афганистан», и я хочу выбрать «Афганистан». – bhavesh

Смежные вопросы