2017-04-19 1 views
1

J'essaie de créer une case à cocher en dehors d'un formulaire, juste pour lier une fonction JS à l'aide de Lwt_js_events.clicks.Créer une case à cocher avec ocsigen | Eliom

J'ai essayé d'utiliser bool_checkbox_one, mais je n'arrive pas à trouver un moyen de générer le paramètre ~ name: pour cela. J'ai trouvé un post ici où quelqu'un vous expliquait que vous ne pouviez pas, et je devrais utiliser la version raw_, mais cela ne semble plus exister. J'ai trouvé la mention d'un module Html.D.Raw, mais je n'arrive pas à comprendre comment cela fonctionne, et le doc est tout à fait démodé sur ce point.

L'autre chose que j'essayé utilise ceci:

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

Maintenant, évidemment, ce n'est pas vraiment jolie, mais cela fonctionne, il ne génère une case à cocher appropriée qui fonctionne très bien pour ce que je veux, mais quand je l'appelle Eliom_content .Html.To_dom.of_element sur celui sur le client, je reçois un objet sur lequel je ne peux pas appeler ## vérifié pour savoir si la case à cocher est cochée ou non (ce qui semble possible sur bool_checkbox_one). J'ai aussi essayé d'utiliser ## hasAttribute pour essayer de voir si elle a "cochée", mais apparemment cela n'est pas mis à jour quand je coche la case, je ne sais pas pourquoi.

En tout cas, quelle serait la bonne façon de le faire? Merci

Répondre

1

trouvé un moyen d'utiliser ## vérifié:

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

Js.Unsafe.get semble permettre d'obtenir des propriétés arbitraires d'un élément dom, pas exactement aussi bon que l'aide d'une case à cocher appropriée je suppose mais ça marche.