Javascript 如何更改更改事件下拉列表的值?

Javascript 如何更改更改事件下拉列表的值?,javascript,ajax,asp.net-mvc,drop-down-menu,Javascript,Ajax,Asp.net Mvc,Drop Down Menu,我有两个下拉列表,它们来自同一个表。一个包含员工代码,另一个包含员工姓名。如果我更改了员工代码,则其他下拉列表应显示与代码相关的员工姓名,如果我更改了员工姓名,则应显示代码。我能够成功检索值,但无法在下拉列表中显示值。以下是我的代码: $("select#code").on("change", function () { getNameFunc($(this).val()) }); $("select#empName").on("change", function () {

我有两个下拉列表,它们来自同一个表。一个包含员工代码,另一个包含员工姓名。如果我更改了员工代码,则其他下拉列表应显示与代码相关的员工姓名,如果我更改了员工姓名,则应显示代码。我能够成功检索值,但无法在下拉列表中显示值。以下是我的代码:

$("select#code").on("change", function () {
         getNameFunc($(this).val())
});

$("select#empName").on("change", function () {
         getCodeFunc($(this).val())
});

function getNameFunc(value) {
   $.ajax({
        url: '@Url.Action("getName", "Employees")',
        data: { id: value },
        cache: false,
        type: "GET",
        success: function (data) {
               $("#empName").val(data.Name);
        }
    });
}

function getCodeFunc(value) {
     $.ajax({
          url: '@Url.Action("getCode", "Employees")',
          data: { id: value },
          cache: false,
          type: "GET",
          success: function (data) {
               $("#code").val(data.Code);
          }
    });
}
我的下拉列表:

@Html.DropDownList("EmpCode", null, htmlAttributes: new { id = "code" })
@Html.DropDownList("EmpName", null, htmlAttributes: new { id = "empName" })

在警报功能中,我得到了预期值,但问题是将其显示在下拉列表中。

检查此代码。你可能会从中得到帮助。 注意,我没有在这段代码中实现ajax调用

$(“#emp_code”)。关于(“更改”,函数(){
$(“#emp_name”).val($(“#emp_code”).val());
});
$(“#emp_name”)。关于(“更改”,函数(){
$(“#emp_code”).val($(“#emp_name”).val());
});

Emp代码:
1.
2.
3.
4.

Emp名称: 基础知识 XYZ PQR JKL
检查此代码。你可能会从中得到帮助。 注意,我没有在这段代码中实现ajax调用

$(“#emp_code”)。关于(“更改”,函数(){
$(“#emp_name”).val($(“#emp_code”).val());
});
$(“#emp_name”)。关于(“更改”,函数(){
$(“#emp_code”).val($(“#emp_name”).val());
});

Emp代码:
1.
2.
3.
4.

Emp名称: 基础知识 XYZ PQR JKL
简单,试试看,让我假设选择渲染为,这是虚拟测试,最佳方法必须保存value=EmpID

Emp名称下拉列表

<select id="name">
<option value="EmpID1"> Name 1 </option>
<option value="EmpID2"> Name 2 </option>
</select>
<select id="code">
 <option value="EmpID1"> Code 1 </option>
 <option value="EmpID2"> Code 2 </option>
 </select>
由文本/名称设置的值

  $('#name').val(data.EmpID1)

Similarly reverse

$('#code').val(data.EmpID1)
$('#name option:selected').text(data.Name)

简单,试试看,让我假设选择渲染为,这是虚拟测试,最好的方法是保存value=EmpID

Emp名称下拉列表

<select id="name">
<option value="EmpID1"> Name 1 </option>
<option value="EmpID2"> Name 2 </option>
</select>
<select id="code">
 <option value="EmpID1"> Code 1 </option>
 <option value="EmpID2"> Code 2 </option>
 </select>
由文本/名称设置的值

  $('#name').val(data.EmpID1)

Similarly reverse

$('#code').val(data.EmpID1)
$('#name option:selected').text(data.Name)


当页面加载时,您是加载下拉列表值还是通过一次下拉更改动态加载下拉列表值。我使用ViewBag加载下拉列表。发布两个下拉列表如果该下拉菜单是动态创建的,那么您应该尝试console.log元素(如果找到)。在
console.log
中,我获取员工姓名,但无法设置页面加载时下拉列表的值,您是加载下拉列表值还是通过一次下拉更改动态加载下拉列表值。我使用ViewBag加载下拉列表。发布两个下拉列表如果该下拉菜单是动态创建的,那么您应该尝试console.log元素(如果找到)。在
console.log
中,我获取员工姓名,但无法设置下拉列表的值显示您的ajax方法(在您的案例中有两个ajax方法)和两个下拉列表输入字段您得到了什么类型的错误?让我知道你的流程你做得怎么样我没有收到任何错误。问题是下拉列表中没有显示值,因为它们都是动态生成的。这就是动态生成的dropdwn,我将更新我的回答是的,两个下拉列表都是动态生成的。显示您的ajax方法(在您的情况下有两个ajax方法)和两个下拉输入字段您遇到了什么类型的错误?让我知道你的流程你做得怎么样我没有收到任何错误。问题是值没有出现在下拉列表中,因为它们都是动态生成的。这就是动态生成的dropdwn,,我将更新我的回答是的,两个下拉列表都是动态生成的。您是否检查了两个下拉列表的值,即员工代码和员工姓名?它们一定是一样的,对不起。我不明白你的意思。同样的方法?我已经更新了我的问题,请再次查看。假设您有5名ID为11、12、13、14和15的员工,那么您的两个下拉列表(即员工代码和员工姓名)都必须具有value属性,即value=“11”,value=“12”直到value=“15”您检查了两个下拉列表(即员工代码和员工姓名)的值吗?它们一定是一样的,对不起。我不明白你的意思。同样的方法?我已经更新了我的问题,请再次查看。假设您有5名ID为11、12、13、14和15的员工,那么您的两个下拉列表(即员工代码和员工姓名)必须具有value属性,即value=“11”,value=“12”直到value=“15”