使用ocsigen |创建一个复选框Eliom

时间:2017-04-19 21:20:39

标签: ocaml ocsigen

我试图在表单外部创建一个复选框,只是使用Lwt_js_events.clicks绑定JS函数。

我尝试过使用bool_checkbox_one,但我无法找到为此生成~name:参数的方法。我在这里发现了一些帖子,其中有人解释你实际上不能,并且应该使用raw_版本,但这似乎不再存在。我确实找到了Html.D.Raw模块的提及,但是我无法弄清楚它是如何工作的,而且文档在这方面已经过时了。

我尝试的另一件事就是使用它:

let checkbox = input ~a:([a_input_type `Checkbox] @
  (if t.status then [a_checked ()] else [])) () in

现在显然不是很漂亮,但它确实有效,它确实生成了一个适合我想要的合适的复选框,但当我在客户端上调用Eliom_content.Html.To_dom.of_element时,我得到一个我无法调用##的对象,检查是否勾选了复选框(在bool_checkbox_one上看起来可能)。 我也尝试使用## hasAttribute尝试查看它是否已经检查了#34;但显然当我勾选复选框时没有更新,不知道为什么。

无论如何,这样做的正确方法是什么? 感谢

1 个答案:

答案 0 :(得分:1)

想出了一种使用## checked的方法:

Js.to_bool (Js.Unsafe.get elt "checked"))

Js.Unsafe.get似乎允许获取dom元素的任意属性,不像使用正确的复选框那样好,但它确实有效。