Javascript 第一个下拉列表名称选择在第二个下拉列表中显示电子邮件值 我有两个下拉列表 下拉列表是动态填充的 工作原理:如果选择name1(下拉列表1),则选择email1(下拉列表2)。(js工作) 什么不起作用:选择名称1后,如果选择名称4,则显示email2。发生的是下拉列表2按编号顺序排列,而不是下拉列表1中选择的内容 发生的情况:所选名称应显示与该名称对应的电子邮件。示例:name1=email1,name2=email2,name3=email3,name4=email4,name5=email5,等等

Javascript 第一个下拉列表名称选择在第二个下拉列表中显示电子邮件值 我有两个下拉列表 下拉列表是动态填充的 工作原理:如果选择name1(下拉列表1),则选择email1(下拉列表2)。(js工作) 什么不起作用:选择名称1后,如果选择名称4,则显示email2。发生的是下拉列表2按编号顺序排列,而不是下拉列表1中选择的内容 发生的情况:所选名称应显示与该名称对应的电子邮件。示例:name1=email1,name2=email2,name3=email3,name4=email4,name5=email5,等等,javascript,jquery,html,drop-down-menu,Javascript,Jquery,Html,Drop Down Menu,HTML <select id="names" name="names" onchange="change(this.value);"> <option value="0"></option> <option value="name1">name1</option> <option value="name2">name2</option> <option value="na

HTML

 <select id="names" name="names" onchange="change(this.value);">
    <option value="0"></option>
    <option value="name1">name1</option>
    <option value="name2">name2</option>
    <option value="name3">name3</option>
    <option value="name4">name4</option>
    <option value="name5">name5</option>
    </select>

    <select id="emails" name="emails" onchange="change(this.value);">
    <option value="0"></option>
    <option value="email1">email1</option>
    <option value="email2">email2</option>
    <option value="email3">email3</option>
    <option value="email4">email4</option>
    <option value="email5">email5</option>
    </select>

名称1
姓名2
名字3
名字4
名字5
电子邮件1
电子邮件2
电邮3
电子邮件4
电子邮件5
JS

function change(value) {

     var names = document.getElementById('names');

     var emails = document.getElementById('emails');


     for (i = 0; i < names.length; i++) {

        if (names.options[i].value == '0') {

         emails.remove(i);

    }

    }

    }
功能更改(值){
var names=document.getElementById('names');
var emails=document.getElementById('emails');
对于(i=0;i
标记jquery时,这是一个jquery解决方案

功能更改(el,值){
变量名称=$('.select'),
selected_index=$(el).find('option:selected').index();
$('.select').not($(el)).find('option:eq('+selected_index+'))).prop('selected',true);
}

名称1
姓名2
名字3
名字4
名字5
电子邮件1
电子邮件2
电邮3
电子邮件4
电子邮件5
试试看

功能更改(值){
var emails=document.getElementById('emails');
var emailValue=value.replace(“名称”、“电子邮件”);
对于(var i=0;i

我认为这应该行得通。

这并不是说它在选择任何东西,而是每次你选择一个名字时都会删除电子邮件,所以它只会选择下一封可用的电子邮件。你真正想要完成的是什么?如果他们总是有相同的顺序,这是我能想到的最简单的解决方案:
function change(value){
    var emails = document.getElementById('emails');
    var emailValue = value.replace("name", "email");
    for(var i = 0; i < emails.length; i++){
        if(emails.options[i].value == emailValue){
            emails.options[i].selected = true;
        }
        else {
            emails.options[i].selected = false;
        }
    }
}