1

我在创建链式选择时遇到了问题,最终通过将几个 SO 解决方案修补在一起找到了解决方案。本着 SO 的精神,我发布了我的最终解决方案。它适用于 jquery 1.10。

为了让每个人都开心,我还为此添加了 jsfiddle。=)

最终的 JSFiddle 在这里:http: //jsfiddle.net/NNLh2/

演练:

假设您有两个选择框:

<select id="my_alert_type_id" size="2" name="my_alert[type_id]">
    <option value="1">Live</option>
    <option value="2">EOD</option>
</select>
<br>
<br>
<select id="my_alert_category_id" name="myalert[category_id]" size="10">
    <option>select a feed type</option>
</select>

我希望在用户从第一个选择中选择一个选项后更改第二个选择选项。起初我使用了这个答案:

如何删除选择框的所有选项,然后添加一个选项并使用 jQuery 选择它?

然后我发现它必须在页面实际完成加载所有内容时运行这个问题:

根据选择选项 jquery 显示/隐藏 div

但它仍然没有按照我想要的方式工作。我在第一个框中有两个选项,并且代码需要响应每个选择。我需要将它包装到 if/then 块中,然后在我选择时运行那段漂亮的代码。

很好。我是 C#/php/ruby/C 开发人员;我对所有这些 $ 和函数到底了解多少?Javascript 试图模拟 C 格式,所以我将它包装在一个 if-then 块中,并在这个问题的帮助下:

JQuery - 获取选择值

我能够将第一个选择的值分配给一个变量,然后运行漂亮的 javascript replace-the-options 部分。

还有中提琴!现在我有一个有效的基本链式选择。我可以通过调整附加部分以任何我想要的方式替换它。这是针对 Rails 项目的,所以下一部分是如何动态创建所有这些。但现在我会享受我的杂乱无章的解决方案并继续这个项目。

对于 rails 的人:rails 和 js 并没有真正相互交流,所以如果你想动态创建这些附加选项,请使用 escape_javascript、render 和自定义创建你传递的 url。并且总是通过 json 传递它。还有其他关于 SO 的问题可以讨论它。去查一下;我不能为你做一切。=P

4

1 回答 1

0

好吧,我几乎浏览了上面的整个问题和解决方案,所以请随时发表评论和批评。考虑到 jquery 和 JS 不是我的强项,我为自己感到相当自豪。

于 2013-12-26T17:56:04.617 回答