最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Linking combo box (JQuery preferrably) - Stack Overflow

programmeradmin4浏览0评论

I am wondering if anyone has any experience using a JQuery plugin that converts a html

<select> 
  <option> Blah </option> 
</select>

bo box into something (probably a div) where selecting an item acts the same as clicking a link.

I guess you could probably use javascript to handle a selection event (my javascript knowledge is a little in disrepair at the moment) and 'switch' on the value of the bo box but this seems like more of a hack.

Your advice, experience and remendations are appreciated.

I am wondering if anyone has any experience using a JQuery plugin that converts a html

<select> 
  <option> Blah </option> 
</select>

bo box into something (probably a div) where selecting an item acts the same as clicking a link.

I guess you could probably use javascript to handle a selection event (my javascript knowledge is a little in disrepair at the moment) and 'switch' on the value of the bo box but this seems like more of a hack.

Your advice, experience and remendations are appreciated.

Share Improve this question edited Dec 14, 2017 at 7:03 Death-is-the-real-truth 72.3k10 gold badges57 silver badges104 bronze badges asked Sep 8, 2008 at 1:51 Matt MitchellMatt Mitchell 41.8k35 gold badges121 silver badges185 bronze badges
Add a ment  | 

4 Answers 4

Reset to default 8

The simple solution is to use

$("#mySelect").change(function() {
  document.location = this.value;
});

This creates an onchange event on the select box that redirects you to the url stored in the value field of the selected option.

I'm not sure where you want to link to when you click the Div, but given something like this perhaps would work:

<select id="mySelect">
  <option value="1">Option 1</option>
  <option value="2">Option 2</options>
</select>
<div id="myDiv"/>

and the following JQuery creates a list of <div> elements, a goes to a URL based on the value of the option:

$("#mySelect option").each(function() {
    $("<div>" + $(this).text() + "</div>").appendTo($("#myDiv")).bind("click", $(this).val(), function(event) {
        location.href = "goto.php?id=" + event.data;
    });
});
$("#mySelect").remove();

Does this do what you want?

If you're going to have a lot of select boxes that you want to allow to use as redirects, without having to define them independently, try something similar to:

$("[id*='COMMON_NAME']").change(function() {
    document.location = this.value;
});

And have your select boxes be named accordingly:

<select id="COMMON_NAME_001">...</select>
<select id="COMMON_NAME_002">...</select>

This creates a onchange event for all IDs containing "COMMON_NAME" to do a redirect of the <option> value.

This bit of javascript in the 'select':

onchange="if(this.options[this.selectedIndex].value!=''){this.form.submit()}"

It's not ideal (because form submissions in ASP.NET MVC which I'm using don't appear to use the routing engine for URLs) but it does its job.

发布评论

评论列表(0)

  1. 暂无评论