链接组合框(最好是 JQuery)

Posted

技术标签:

【中文标题】链接组合框(最好是 JQuery)【英文标题】:Linking combo box (JQuery preferrably) 【发布时间】:2010-09-08 02:51:12 【问题描述】:

我想知道是否有人有使用转换 html 的 JQuery 插件的经验

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

将组合框放入某个东西(可能是一个 div)中,其中选择一个项目的作用与单击一个链接的作用相同。

我猜您可能会使用 javascript 来处理选择事件(我的 javascript 知识目前有点年久失修)并“切换”组合框的值,但这似乎更像是一种 hack。

感谢您的意见、经验和建议。

【问题讨论】:

【参考方案1】:

简单的解决方案是使用

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

这会在选择框上创建一个 onchange 事件,将您重定向到存储在所选选项的 value 字段中的 url。

【讨论】:

【参考方案2】:

当你点击 Div 时,我不确定你想链接到哪里,但考虑到这样的事情可能会起作用:

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

下面的 JQuery 创建了一个&lt;div&gt; 元素列表,a 会根据选项的值转到一个 URL:

$("#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();

这是你想要的吗?

【讨论】:

【参考方案3】:

如果您要允许将许多选择框用作重定向,而不必单独定义它们,请尝试类似的方法:

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

并相应地命名您的选择框:

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

这会为所有包含“COMMON_NAME”的 ID 创建一个 onchange 事件,以重定向 &lt;option&gt; 值。

【讨论】:

【参考方案4】:

'select' 中的这段 javascript:

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

这并不理想(因为我正在使用的 ASP.NET MVC 中的表单提交似乎没有使用 URL 的路由引擎)但它可以完成它的工作。

【讨论】:

以上是关于链接组合框(最好是 JQuery)的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 组合框建议

如何链接多个组合框表中的两个组合框?

jquery中的组合框[重复]

2 个自定义组合框,在 DataTables 中过滤结果,获取 2 个组合框来过滤结果的问题 - JavaScript、jQuery

如何使用 jquery 在组合框中选择一个条目?

EXTJS4 中的链接组合框