这可以通过 jQuery 和 Select 选项实现吗?

发布于 2024-12-12 03:48:02 字数 596 浏览 0 评论 0原文

我的数据库中有一个国家及其区号的列表。当选择一个选择选项时,我试图使用国家/地区代码自动更新文本字段。

前任。

<select name="country">
    <option value="CA" code="+1">Canada</option>
    ...
</select>

<input type="text" name="phone" />

我需要将值 CA 传递给脚本,并且用户需要查看加拿大。基本上我要问的是我可以创建一个新选项 code 并让 jQuery 更新我选择的文本字段。

这可以吗?或者还有其他方法可以完成这个任务吗?

编辑:“代码”应该是该国家/地区的区号。例如,当用户选择加拿大时,文本字段 phone 会更新为 +1。我知道我可以将 value 设置为 +1,然后使用 .change() 更新 phone.val() 但我需要将当前值传递给处理它的脚本。

I have a list of countries and their area codes in a database. I am trying to auto update a text field with the countries area code when a select option is selected.

ex.

<select name="country">
    <option value="CA" code="+1">Canada</option>
    ...
</select>

<input type="text" name="phone" />

I need to pass on to the script the value CA and the users need to see Canada. Basically what I'm asking is can I create a new option code and have jQuery update the text field that I choose to it.

Is this possible to do? or is there another way I can accomplish this?

Edit: "code" is supposed to be the country's area code. So when a user selects Canada for example the text field phone gets updated with +1. I know I can just set value to +1 and then use .change() to update phone's .val() but I need the current value to pass on to the script that processes it.

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

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

发布评论

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

评论(4

如梦初醒的夏天 2024-12-19 03:48:02

我建议您使用 HTML5 data- 属性而不是自定义属性:

<select name="country">
    <option value="CA" data-code="+1">Canada</option>
    ...
</select>

<input type="text" name="phone" />

然后将处理程序绑定到 change 事件:

$('select[name="country"]').change(function() {
    $('input[name="phone"]').val($(this).children('option:selected').data('code'));
});

或者使用较少的 jQuery:

$('select[name="country"]').change(function() {
    $('input[name="phone"]').val(this.options[this.selectedIndex].getAttribute('data-code'));
});

另一种选择是一个国家-> code 在 JavaScript 中映射

var map = {
    'CA': '+1',
    ...
};

,然后查找代码。

I suggest you use an HTML5 data- attribute instead of a custom attribute:

<select name="country">
    <option value="CA" data-code="+1">Canada</option>
    ...
</select>

<input type="text" name="phone" />

and then bind a handler to the change event:

$('select[name="country"]').change(function() {
    $('input[name="phone"]').val($(this).children('option:selected').data('code'));
});

or with less jQuery:

$('select[name="country"]').change(function() {
    $('input[name="phone"]').val(this.options[this.selectedIndex].getAttribute('data-code'));
});

Another option would be to have a country -> code map in JavaScript

var map = {
    'CA': '+1',
    ...
};

and then look up the code.

萝莉病 2024-12-19 03:48:02

确保为每个元素分配一个 id。

var code = $('#country option:selected').attr('code');
$('#phone').val(code);

如果“代码”不起作用。使用“标题”。

Be sure to assign each element an id.

var code = $('#country option:selected').attr('code');
$('#phone').val(code);

If "code" doesn't work. Use "title".

皇甫轩 2024-12-19 03:48:02

不完全确定你在问什么,但这有帮助吗?

$('select[name=country]').change(function() {

    $('input[name=phone]').val($(this).find('option:selected').attr('code'));

    alert('Do something else with this: ' + $(this).val());
});

Not entirely sure what you're asking, but dos this help?

$('select[name=country]').change(function() {

    $('input[name=phone]').val($(this).find('option:selected').attr('code'));

    alert('Do something else with this: ' + $(this).val());
});
日裸衫吸 2024-12-19 03:48:02
$("select[name='country']").change(function() {
    $("input[name='phone']").val($(this).find('option:selected'));
});

你可以试试这个。它与选择菜单更改事件相关,然后获取“code”属性值并将输入的文本设置为其。

$("select[name='country']").change(function() {
    $("input[name='phone']").val($(this).find('option:selected'));
});

You can try this. It ties into the select menus change event and then gets the "code" attribute value and sets the text of the input to it.

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