Javascript:从列表中获取选定的选项并将其粘贴到标签标记上

发布于 2024-09-13 23:33:20 字数 1149 浏览 5 评论 0原文

我有一个国家/地区列表,html,它们有数字 ID 和国家/地区名称:

例如:

<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代码中的错误在哪里。 谢谢

I have a list of countries, html, they have numeric ids and country name:

Ex:

<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>

Im trying to use a jquery script to get the country of the list, not the value, the name and paste it inside of a label.

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

});

And the HTML that should get the country name is:

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

Could someone guide me through the problem? I cant find where is my error in the JS code.
Thank you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小兔几 2024-09-20 23:33:20

两件小事:

  • $("#userDto\\.nationality option:selected") 更改选择器
    $("#userDto\\.nationality")

  • 将事件处理程序从 click 更改为 change

完成。

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

原因:

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

因此,您需要向 select 元素 本身添加一个事件处理程序。每当您更改选择时,更改处理程序就会触发。我想这就是你想要的结果。

Two little things:

  • change selector from $("#userDto\\.nationality option:selected")
    to $("#userDto\\.nationality")

  • change event handler from click to change

Done.

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

Why:

Your current code would have worked, but only for "Argentinia" since it is selected by default. With your selector option:selected you bound the event handler only to selected option elements, which is, Argentinia.

So you need to add an event handler to the select element itself. The change handler fires whenever you change the selection. I guess that is your desired result.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文