使用 ocsigen | 创建一个复选框以利安

Create a checkbox with ocsigen | Eliom

我正在尝试在表单外创建一个复选框,只是为了使用 Lwt_js_events.clicks 在其上绑定一个 JS 函数。

我试过使用 bool_checkbox_one,但我想不出一种方法来为此生成 ~name: 参数。我在这里找到了一些 post,有人在解释你实际上不能,应该使用 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 时,我得到了一个对象我不能调用 ##checked 来知道复选框是否被选中(这在 bool_checkbox_one 上看起来是可能的)。 我也尝试使用##hasAttribute 来尝试查看它是否有 "checked",但显然当我勾选复选框时它没有更新,不知道为什么。

无论如何,正确的方法是什么? 谢谢

找到使用##checked 的方法:

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

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