aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/js
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adam@chlipala.net>2011-07-15 10:02:54 -0400
committerGravatar Adam Chlipala <adam@chlipala.net>2011-07-15 10:02:54 -0400
commitd85248cb116c4e2db7a04d80a8eba6870344c2a9 (patch)
tree647ce68734dfce10572c974b4454cb4be41c5f40 /lib/js
parenteb38a363003afe9571a0e88a6b88219825e08267 (diff)
Fixes for detecting pastes and autocompletes for dynamic textboxes
Diffstat (limited to 'lib/js')
-rw-r--r--lib/js/urweb.js14
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/js/urweb.js b/lib/js/urweb.js
index 272ba32b..76ad76fa 100644
--- a/lib/js/urweb.js
+++ b/lib/js/urweb.js
@@ -277,11 +277,13 @@ function sc(v) {
return {data : v, dyns : null};
}
function sv(s, v) {
- s.data = v;
+ if (s.data != v) {
+ s.data = v;
- for (var ls = s.dyns; ls; ls = ls.next)
- if (!ls.dead)
- populate(ls.data);
+ for (var ls = s.dyns; ls; ls = ls.next)
+ if (!ls.dead)
+ populate(ls.data);
+ }
}
function sg(s) {
return s.data;
@@ -491,7 +493,7 @@ function inp(s, name) {
var x = input(document.createElement("input"), s,
function(x) { return function(v) { if (x.value != v) x.value = v; }; }, null, name);
x.value = s.data;
- x.onkeyup = function() { sv(s, x.value) };
+ x.onkeyup = x.oninput = x.onchange = x.onpropertychange = function() { sv(s, x.value) };
return x;
}
@@ -545,7 +547,7 @@ function tbx(s) {
var x = input(document.createElement("textarea"), s,
function(x) { return function(v) { if (x.innerHTML != v) x.innerHTML = v; }; });
x.innerHTML = s.data;
- x.onkeyup = function() { sv(s, x.value) };
+ x.onkeyup = x.oninput = x.onchange = x.onpropertychange = function() { sv(s, x.value) };
return x;
}