2010-08-12 43 views
0

我的国家的名单,HTML,他们有数字ID和国名:的Javascript:从列表获取所选的选项,然后粘贴到一个标签标记

例:

<select name="userDto.nationality" id="userDto.nationality"> 
      <option value="">Seleccione</option> 
       <option value="1">Alemania</option> 
       <option selected="selected" value="2">Argentina</option> 
       <option value="8">Australia</option> 
       <option value="9">Austria</option> 
       <option value="10">Bélgica</option> 
       <option value="11">Bolivia</option> 
</select> 

我试着去使用jquery脚本来获取列表的国家,而不是价值,名称,并将其粘贴到标签中。

$(document).ready(function() {  
    $("#userDto\\.nationality option:selected").click(function() { $("#nationalityLabel").html(this.value); }); 

}); 

,并应得到国家的名字HTML是:

<div name="userLabelDiv" id="nationalityUserLabelDiv"> 
    <label class="required">Nacionalidad :</label> 
    <label id="nationalityLabel"></label> 
</div> 

有人能指导我的问题吗?我无法找到我的错误在JS代码中。 谢谢

回答

2

两个小东西:从$("#userDto\\.nationality option:selected")

  • 变化选择到$("#userDto\\.nationality")

  • change事件处理从clickchange

完成。

$(document).ready(function() {  
    $("#userDto\\.nationality").change(function() { 
     $("#nationalityLabel").html(this.value); 
    }); 
}); 

为什么:

您当前的代码会工作,但仅限于“阿根廷”,因为它是selected默认。使用您的选择器option:selected,您仅将事件处理程序绑定到选定的选项元素,即阿根廷。

所以你需要添加一个事件处理程序到select element本身。更改处理程序会在您更改选择时触发。我想这是你想要的结果。

+0

这是行得通的,但我的标签获得选项的id,例如:我从选择列表中选择“Austria”,我的标签显示ID“9”,但实际上我需要它来显示与该id相对应的国家/地区,在这种情况下,我需要标签向我显示“奥地利”。我怎么欺骗它?谢谢! – BoDiE2003 2010-08-13 13:31:33