使用Noir的Web应用程序:如何在不诉诸JavaScript的情况下显示依赖的下拉菜单
webapp using Noir: how to display dependent drop-down menus without resorting to javascript
我正在尝试使用 Noir 编写一个简单的 Web 应用程序,该应用程序具有一系列下拉菜单,其内容会根据上一个下拉菜单中选择的内容而变化。然后将这些选项作为表单提交。虽然网络上有很多关于如何使用直接JavaScript来做到这一点的信息,但我更愿意坚持使用Clojure。我正在使用黑色 1.2.1 和打嗝 0.3.6。
我目前的尝试看起来像这样(fh 是 hiccup.form-helpers:
(defpage "/run-experiment" []
(common/layout
(fh/form-to [:post "/run-experiment"]
(fh/label "dd1" "Drop Down 1:")
(fh/drop-down :opts1 '(Opt1A Opt1B) 'Opt1A)
(fh/label "dd2" "Drop Down 2:")
(fh/drop-down :opts2 (cond (= 'Opt1A (get-opt1)) '(Opt2A1 Opt2A2)
(= 'Opt1B (get-opt1)) '(Opt2B1 Opt2B2))))))
(而不是cond,我会用地图实现上述内容,但现在我认为这更清楚了)
我希望能够获取第一个下拉列表的选定元素的文本值,并根据该值显示第二个元素的html。我正在尝试弄清楚是否有办法使用 Hiccup,生成我需要添加到第一个下拉列表中的 onclick 参数所需的 Javascript。此外,我试图弄清楚是否有办法访问表单其他元素的 id 值,以便我可以在生成的 Javascript/HTML 中链接它们。理想情况下,我希望像Hiccup为HTML所做的那样,但对于Javascript。我认为Clojurescript可能是一个很好的候选者,但它似乎比我想要的要多。我认为我想要的是一个轻量级库,它可以生成可以与 Hiccup 结合使用的常见 Javascript 任务字符串。
我知道
这很丑陋,但是您可以使用打嗝将javascript作为字符串文字插入:
(hiccup.element/javascript-tag "alert('"hello world'")")
但是为什么不直接写js。
相关文章:
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 在不设置协议的情况下,使用javascript/jquery更改iframe-src
- 如何在不单击javascript中的按钮的情况下触发事件
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 无法't在不使用Javascript刷新页面的情况下多次将值传递给文本框
- 有没有一种方法可以在没有文档或jQuery的情况下使用javascript解码html实体
- 如何在没有ajax的情况下将javascript动态数据发送到php变量
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 如何在不知道关键字的情况下访问javascript对象值
- 为什么在这种情况下,“This”确实充当javascript函数中的私有成员
- 如何在不保存到其他变量的情况下更改JavaScript中的值
- 在不使用PHP的情况下将表单输入值获取到Javascript中
- 如何在不预定义的情况下将javascript函数传递到另一个函数中
- 在给定 javascript 中的表头的情况下生成 TSV 文件
- 如何在不退出javascript的情况下从javascript更新网页
- 我可以在不使用乘法运算符“”的情况下进行乘法运算吗*"在JavaScript中
- 在不使用循环的情况下,从一个数据库字符串值向javascript数组添加多个对象
- Haxe Javascript:在不使用Reflect的情况下按名称获取和设置属性
- 在不使用javascript的情况下,可以在表单字段中设置文本占位符(以提示最终用户插入特定格式)
- 在这种javascript情况下,除了eval之外的任何其他选项