触发下拉选择选项的图片链接,无需事先选择

问题描述 投票:0回答:2

我想要一个选择select语句的特定选项的链接,而不必先选择它。为了清楚起见,我没有尝试使用一个按钮/链接触发器,无论之前选择了哪个选项,我希望多个链接触发一个选择选项,每个选项都可以替代使用下拉菜单本身。

如果我们采用以下代码,例如,如何通过此链接触发“离开”选项?

<div class="collection-sort">
      <label></label>
      <select>
            <option>Select</option>
            <option value="home">Home</option>
            <option value="away">Away</option>
        </select>
    </div>

<a href="#away">
    <img src="http://via.placeholder.com/100x100">
    </a>
javascript jquery html css
2个回答
2
投票

您应该听取#away元素的单击并相应地更改选择字段的值。像这样的东西:

$(document).on("click", "#away", function(){
  $("select").val("away").change();
});

这是一个有效的例子

    <html>  
      <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link href="https://cdn.bootcss.com/bootstrap/2.3.2/css/bootstrap.min.css" rel="stylesheet">
        <script src="https://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
        <script src="https://cdn.bootcss.com/bootstrap/2.3.2/js/bootstrap.min.js"></script>
        <style>
          .wrap > .icon:last-of-type{
            color: red;
          }
        </style>
        <script type="text/javascript">
          $(document).ready(function(){
            $(document).on("click", "#away", function(){
              $("select").val("away").change();
            });
          });
        </script>
      </head>
      <body>
        <div class="collection-sort">
          <label></label>
          <select>
            <option>Select</option>
            <option value="home">Home</option>
            <option value="away">Away</option>
          </select>
        </div>

        <a href="#away" id="away">
          <img src="http://via.placeholder.com/100x100">
        </a>
        
      </body>
    </html>

1
投票

您可以在具有适当选项值的多个链接上使用此handleSelect方法。

function handleSelect(option) {
  var optionElm = document.getElementById(option);
  if(optionElm) {
   optionElm.selected = !optionElm.selected;
  }
}
<div class="collection-sort">
      <label></label>
      <select>
            <option>Select</option>
            <option id="home" value="home">Home</option>
            <option id="away" value="away">Away</option>
        </select>
    </div>

<a href="#away" onclick=handleSelect("away")>
    <img src="http://via.placeholder.com/100x100">
</a>
© www.soinside.com 2019 - 2024. All rights reserved.