Javascript 选择框不返回预期值

Javascript 选择框不返回预期值,javascript,jquery,Javascript,Jquery,我有一个表单,它将根据第一个选择框显示不同的选项 如果选择了选项1,则会显示第二个下拉列表,其中预选了一个选项。如果选择选项2,则将显示包含两个选项的不同下拉列表 这两个新的下拉列表将具有相同的ID和名称,用于将选项传递到后端,但它会不断返回错误的值。这是一个 我将使用: 选择计划 管理我自己的项目 管理其他项目 系统计划: 选择计划 独奏 系统计划: 选择计划 计划业务 计划最大值 提交 //jquery $(“div[class^='js-rentpro-plan-']])hide();

我有一个表单,它将根据第一个选择框显示不同的选项

如果选择了选项1,则会显示第二个下拉列表,其中预选了一个选项。如果选择选项2,则将显示包含两个选项的不同下拉列表

这两个新的下拉列表将具有相同的ID和名称,用于将选项传递到后端,但它会不断返回错误的值。这是一个

我将使用:

选择计划 管理我自己的项目 管理其他项目 系统计划:

选择计划 独奏 系统计划:

选择计划 计划业务 计划最大值


提交 //jquery $(“div[class^='js-rentpro-plan-']])hide(); $('.js rp use').change(函数(){ $(“#js rp计划文本,.js rentpro计划单播,.js rentpro计划其他”).hide(); if($(this).val()=='SOLO'){ $('.js rentpro plan solo').show(); }else if($(this).val()=='OTHER'){ $('.js rentpro plan other').show(); }否则{ $(“#js rp平面图文本”).show(); } }); $(“#提交”)。单击(函数(){ log('计划id为:'+$('#计划id').val()); });
ID必须是唯一的。不要使用相同的id,而是使用类

获取错误值的原因是您使用的是
$('#plan_id')。val()
它将返回找到的第一个匹配项的值

编辑:
要使用当前结构获得正确的值,可以使用:

var vl = $(this).siblings('div:visible').find('select').val()
console.log('plan id is: ' + vl );
但是我建议您修改结构,将它们包装成一个表单,给您的select容器提供相同的类,这样您就可以更容易地访问它们

您的选择器将始终使用第一个匹配项,无论您使用的是元素、类还是id。或者使用的是类,您可以:

$('.signup-select:visible').val()

我有它,所以另一个id是隐藏的,只有一个显示过。我现在改为使用类,但当我提交表单时,仍然得到了错误的值。上面的代码没有使用类,所以它不会有任何区别,除非您更改了结构,在这种情况下,如果您将其发布以便我可以查看,这将是很好的。如果您的意思是您将其更改为类并像
$('.plan_id').val()那样调用它,则不会有任何区别,您仍将获得第一个匹配的值。(即使是隐藏的)没有即时通讯使用后端的帖子来获取数据。选项2正常工作,按预期返回2和3,但选项1和solo继续返回-1。我看到它在第2个选项(隐藏选择)中得到了-1作为第一个选项
$('.signup-select:visible').val()