summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/js/urweb.js2
-rw-r--r--tests/ccheckbox.ur8
2 files changed, 9 insertions, 1 deletions
diff --git a/lib/js/urweb.js b/lib/js/urweb.js
index 3829cdb2..a6ea21c1 100644
--- a/lib/js/urweb.js
+++ b/lib/js/urweb.js
@@ -894,7 +894,7 @@ function chk(s) {
var x = input(document.createElement("input"), s,
function(x) { return function(v) { if (x.checked != v) x.checked = v; }; }, "checkbox");
x.defaultChecked = x.checked = s.data;
- x.onclick = function() { sv(s, x.checked) };
+ x.onclick = x.onkeyup = x.oninput = x.onchange = x.onpropertychange = function() { sv(s, x.checked) };
return x;
}
diff --git a/tests/ccheckbox.ur b/tests/ccheckbox.ur
new file mode 100644
index 00000000..09a8ece9
--- /dev/null
+++ b/tests/ccheckbox.ur
@@ -0,0 +1,8 @@
+fun main () : transaction page =
+ s <- source True;
+ t <- source 1;
+ return <xml><body><ccheckbox source={s} onclick={set t 3}/>
+ <dyn signal={s <- signal s;
+ t <- signal t;
+ return <xml>{[s]} {[t]}</xml>}/>
+ </body></xml>