我在创建链式选择时遇到了问题,最终通过将几个 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 选择它?
然后我发现它必须在页面实际完成加载所有内容时运行这个问题:
但它仍然没有按照我想要的方式工作。我在第一个框中有两个选项,并且代码需要响应每个选择。我需要将它包装到 if/then 块中,然后在我选择时运行那段漂亮的代码。
很好。我是 C#/php/ruby/C 开发人员;我对所有这些 $ 和函数到底了解多少?Javascript 试图模拟 C 格式,所以我将它包装在一个 if-then 块中,并在这个问题的帮助下:
我能够将第一个选择的值分配给一个变量,然后运行漂亮的 javascript replace-the-options 部分。
还有中提琴!现在我有一个有效的基本链式选择。我可以通过调整附加部分以任何我想要的方式替换它。这是针对 Rails 项目的,所以下一部分是如何动态创建所有这些。但现在我会享受我的杂乱无章的解决方案并继续这个项目。
对于 rails 的人:rails 和 js 并没有真正相互交流,所以如果你想动态创建这些附加选项,请使用 escape_javascript、render 和自定义创建你传递的 url。并且总是通过 json 传递它。还有其他关于 SO 的问题可以讨论它。去查一下;我不能为你做一切。=P