Javascript jquery跨浏览器将文本复制到文本框问题 下拉列表

Javascript jquery跨浏览器将文本复制到文本框问题 下拉列表,javascript,jquery,textbox,Javascript,Jquery,Textbox,在我的站点中,我有一组选择下拉列表,它们是这样设置的 <OPTION class="addTitleTag">400</OPTION> 其想法是,当从选项的列表中选择下拉选项时,它会获取该选项的文本并将其复制到搜索框中。然后用户在搜索框中按下go来搜索文本。这在firefox中运行良好。然而,它在Safari中表现不佳。我想知道它有什么问题。我知道在以前的设置中,我使用无序列表中的列表标记(li),safari似乎能够很好地获取文本值。但是,它不会从选项标记内部获取文本

在我的站点中,我有一组选择下拉列表,它们是这样设置的

<OPTION class="addTitleTag">400</OPTION>

其想法是,当从选项的列表中选择下拉选项时,它会获取该选项的文本并将其复制到搜索框中。然后用户在搜索框中按下go来搜索文本。这在firefox中运行良好。然而,它在Safari中表现不佳。我想知道它有什么问题。我知道在以前的设置中,我使用无序列表中的列表标记(li),safari似乎能够很好地获取文本值。但是,它不会从选项标记内部获取文本,在本例中,我需要使用选项标记。我想知道附近是否有什么工作。谢谢大家!

当select的
change
事件触发时,您需要获取select元素的当前值:

$(".myselect").change(function(){
  $(".search").val( $(this).val() );
});
在线演示:

请注意,此方法不需要在HTML本身中添加onblur或onfocus事件逻辑。相反,如果您给它足够的选择器,它将自行绑定

<input type="text" name="search" class="search" />

<select class="myselect" name="foo">
  <option>100</option>
  <option>200</option>
  <option>300</option>
</select>

请注意,我仅通过修改选择器来添加新的下拉列表。

为了使用jquery获取ddl的选定文本,您需要执行以下操作:

<select id="product_1">
  <!-- options -->
</select>

<select id="product_2">
  <!-- options -->
</select>
$("#product_1, #product_2").change(function(){
  $(".search").val( $(this).val() );
});
$("#yourdropdownid option:selected").text();
.val将仅获取所选值

当然,在这种情况下,文本是不同的


这可以从StackOverflow的问题中看出

+1欢迎来到Stack Overflow!你好,乔纳森,谢谢你!我把事情弄得比需要的复杂得多。我感谢你的迅速反应。我有个问题。如果我在同一页上有4个下拉列表呢。例如,一个id为entry,另一个id为horse等。我只需要创建4个相同的js语句,或者有没有办法将它们链接在一起。在4个下拉列表中,只搜索一个值。因此,如果他们从输入中选择一个值,它将填充搜索框,但如果他们从输入中选择一个值,它将用一个新值覆盖搜索框中的内容。我希望我明白了。:)@鲍勃:我更新了我的答案来回答你的问题。记住,如果你发现这个答案是有用的,请考虑点击它旁边的复选标记来接受它。谢谢谢谢你,乔纳森,这很好用。我发现它不适用于IE6和IE7。有人能不能也测试一下,再检查一遍,并解释一下为什么它不起作用?@bob:我刚在IE中测试过,它对我起作用了。我使用jQuery1.4.2进行了测试。请务必更新您的本地参考。如果您仍然有问题,一些人建议绑定到
。单击
事件而不是
。更改
,但我不确定我是否会安全地走这条路线。啊,好的。感谢您的反馈,我认为这可能是一个误报,因为我使用了“IETester”,我知道有时候javascript并不准确。
$("#product_1, #product_2").change(function(){
  $(".search").val( $(this).val() );
});
$("#yourdropdownid option:selected").text();