Javascript 如何防止在Html输入(组合框)中显示val

Javascript 如何防止在Html输入(组合框)中显示val,javascript,jquery,html,Javascript,Jquery,Html,我有一个Html输入(组合框) 为了填充数据,我使用jQuery如下: for (var t = 0; t < movies.length; t++) { var m = movies[t]; $("<option/>").val(m.getId()).text(m.getTitle()) .appendTo("#movies"); } for(var t=0;t

我有一个Html输入(组合框)


为了填充数据,我使用jQuery如下:

for (var t = 0; t < movies.length; t++) {
    var m = movies[t];
    $("<option/>").val(m.getId()).text(m.getTitle())
    .appendTo("#movies");
}
for(var t=0;t
最后,我有一个带有这些选项条目的组合框,在每个选项的左侧有一个id(作为val()传递),在右侧有一个标题(以text()传递)

当用户选择一个选项时,该Id将记录在控制台中。 但是我不想显示id(值)?如何隐藏该值?我只想每个电影的标题显示给用户

电影=[
{id:'1',title:'One'},
{id:'2',title:'Two'},
{id:'3',标题:'3'},
{id:'4',标题:'4'},
]
for(var t=0;t

将此
$(“”)val(m.id).text(m.title)
更改为
$(“”)val(m.title)

电影=[{
id:'1',
标题:“一”
},
{
id:'2',
标题:“两个”
},
{
id:'3',
标题:“三”
},
{
id:'4',
标题:“四”
},
]
for(var t=0;t

通常我会说,它是影子DOM的一部分。但在这种情况下,我找不到任何可访问的阴影DOM(至少在Chrome中找不到)

所以我的答案是:你不能

Firefox根本不显示id:

MS Edge也没有:

以及IE女士:

从更换

$("<option/>").val(m.id).text(m.title).appendTo("#movies");
$(“”).val(m.id).text(m.title).appendTo(“#电影”);

$(“#电影”).append(“”+m.title+“”)

上面的代码行将按您的意愿工作

请制作一个工作示例。您想只显示标题正确的下拉列表吗?是的,只显示电影的标题,而不是Id。在这种情况下,您不能在IDS上自动完成用户想要的是带有数据列表的输入,而不是选择下拉列表down@yunzen哦正确,所以用户可以使用我的第一个解决方案,第二个让它在这里,它可以帮助其他人。如果您需要id作为值,例如用于数据库操作,则不能使用您的第一个解决方案。@user1119859是的,您必须这样做,或者您必须寻找其他方法。啊,好的,只需更改浏览器。生活可以如此简单!:-)Firefox 67.0在选择项目后会显示
id
though@user1119859你为什么不使用
选择
顺便说一句?@Darkbee我认为这是你想要的行为。我猜是这样的-我不确定OP为什么会尝试使用
数据列表
并强制使用
id的
。看到任何东西都可以作为输入输入,即使是列表中没有的项目
$("<option/>").val(m.id).text(m.title).appendTo("#movies");
$("#movies").append('<option val='+m.id+'>'+m.title+'</option>')