如何将 url 添加到 select 输入选项?

How can I add a url to a select input's option?

我正在尝试创建一个列表框,其中每个项目都发送到不同的配置文件 我有我的变量 $ru,它得到所有正在工作的用户。 我试过了,但没用:

 <select  class="chosen form-control" name="User"  style="height:28px" >
    <option selected="selected"> Rechercher </option>
    @foreach($ru as $user)

        <option value="/profile/$user->id ">
            <a href="{{  url('/profile/'.$user->id) }} "> {{$user->name}}  </a>
        </option>

    @endforeach
</select>

不能像那样添加 href,只需将其添加到值并使用事件侦听器即可: 将 jquery link 添加到您的脚本标签,用您的替换我的 url 和值。

$(document).ready(function(){

    $('#user').change(function(){
      window.location = this.value;
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<select  class="chosen form-control" name="User" id="user">
  <option>Select profile</option>
  <option value="http://www.google.com"> user name </option>
</select>

来源:Whosebug

href Link 在 select / 选项中是不可能的。您可以使用 jQuery 重定向到配置文件 selected.

示例如下:

<select  class="chosen form-control" name="User"  style="height:28px" >

  <option selected="selected">
    Rechercher
  </option>

  @foreach($ru as $user)
  <option value="{{  url('/profile/'.$user->id) }}">{{$user->name}}
  </option>
  @endforeach

</select>

<script>
$(document).ready(function(){
  $('[name="User"]').change(function(){

    var profile_url = $('[name="User"]').value();

    // redirect to user profile
    if(profile_url != "")
      window.location.href = profile_url;  

  });
});
</script>

试试这个

 <select required class="form-control" id="user"  name="User" onchange="getUser()" required>
                 <option value="All">--All--</option>
                       @foreach($ru as $user)
                 <option value="{{ $user->id }}" {{ (old('user')== $user->id||($user) == $user->id) ? "selected" : "" }}>{{$user->name}}</option>
                      @endforeach
               </select>

//javascript
 function getUser()
    {
        var t=  $('#user').val();
        if(t!= "" ){
            location.href="/profile/"+t;
        }
    }