5

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

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

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

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

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

4

4 回答 4

8

简单的解决方案是使用

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

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

于 2008-09-08T10:53:42.327 回答
2

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

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

下面的 JQuery 创建一个<div>元素列表,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();

这是做你想做的吗?

于 2008-09-08T10:20:03.017 回答
1

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

$("[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 事件,以重定向该<option>值。

于 2009-01-10T16:32:46.090 回答
0

'选择'中的这段javascript:

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

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

于 2008-09-08T02:14:11.093 回答