JQuery 根据下拉菜单中的选择更改值

use*_*977 1 html javascript jquery

我尝试使用 JQuery 创建一个下拉菜单,然后根据人们在菜单中选择的内容更改搜索输入元素上的某个值。

到目前为止,我已经弄清楚如何确定我需要改变的价值。我还了解到,如果有人从菜单中进行任何选择,它会将搜索输入值更改为一个特定值:

<div> 
 <form action="setColor" method="post">
   <fieldset>
     <label for="color">Select A Color</label>
       <select name="color" id="color">
           <option>Blue</option>
           <option selected="selected">Red</option>
           <option>Yellow</option>
      </select>
   </fieldset>
  </form>
</div>


<script> 

  $(function() { 
   $('select[name="color"]').change(function() {
     $('input[name="ancestorId"]').val("9999");
   });
 });

</script> 
Run Code Online (Sandbox Code Playgroud)

我现在需要的是根据菜单选择设置值的东西,匹配如下:

Blue = 9999
Red =  8888
Yellow = 7777 
Run Code Online (Sandbox Code Playgroud)

我仍在查看示例并继续尝试,但有点卡住了。任何建议表示赞赏。

Cᴏʀ*_*ᴏʀʏ 5

您应该将赋值放在选项元素中,因为它们就是为此而设计的:

<select name="color" id="color">
    <option value="9999">Blue</option>
    <option value="8888" selected="selected">Red</option>
    <option value="7777">Yellow</option>
</select>
Run Code Online (Sandbox Code Playgroud)

脚本几乎保持不变,只是我在选择器中使用了元素 ID 而不是它们的名称(假设这里您的祖先元素具有这样的 ID):

$(function() { 
    $('#color').change(function() {
         $('#ancestor').val($(this).val());
    }).change(); // Trigger the event
});
Run Code Online (Sandbox Code Playgroud)

请注意,链式.change()调用将触发刚刚分配的更改事件,以便在页面加载时将预选项目的值填充到文本字段中。

看看它的实际效果:

<select name="color" id="color">
    <option value="9999">Blue</option>
    <option value="8888" selected="selected">Red</option>
    <option value="7777">Yellow</option>
</select>
Run Code Online (Sandbox Code Playgroud)
$(function() { 
    $('#color').change(function() {
         $('#ancestor').val($(this).val());
    }).change(); // Trigger the event
});
Run Code Online (Sandbox Code Playgroud)