From 7b95b3208e776e2fa66142df858464cfbc5137be Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Thu, 21 May 2009 10:18:20 -0400 Subject: Split JavaScript inp() into separate functions --- lib/js/urweb.js | 27 ++++++++++++++++++--------- src/monoize.sml | 10 +++++----- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/lib/js/urweb.js b/lib/js/urweb.js index 8890c446..25ed2f7a 100644 --- a/lib/js/urweb.js +++ b/lib/js/urweb.js @@ -295,7 +295,7 @@ function dyn(s) { populate(x); } -function inp(t, s, content) { +function input(t, s) { var x = document.createElement(t); x.dead = false; x.signal = ss(s); @@ -303,14 +303,23 @@ function inp(t, s, content) { x.recreate = function(v) { if (x.value != v) x.value = v; }; populate(x); addNode(x); - if (t == "select") { - x.innerHTML = content; - x.value = s.data; - x.onchange = function() { sv(s, x.value) }; - } else { - x.value = s.data; - x.onkeyup = function() { sv(s, x.value) }; - } + + return x; +} + +function inp(s) { + var x = input("input", s); + x.value = s.data; + x.onkeyup = function() { sv(s, x.value) }; + + return x; +} + +function sel(s, content) { + var x = input("select", s); + x.innerHTML = content; + x.value = s.data; + x.onchange = function() { sv(s, x.value) }; return x; } diff --git a/src/monoize.sml b/src/monoize.sml index 6c41de21..2ed7c3f8 100644 --- a/src/monoize.sml +++ b/src/monoize.sml @@ -2565,9 +2565,9 @@ fun monoExp (env, st, fm) (all as (e, loc)) = loc)), loc), fm) end | SOME (_, src, _) => - (strcat [str ""], + str ")"], fm)) | _ => (Print.prefaces "Targs" (map (fn t => ("T", CorePrint.p_con env t)) targs); raise Fail "No name passed to textbox tag")) @@ -2637,9 +2637,9 @@ fun monoExp (env, st, fm) (all as (e, loc)) = end | SOME (_, src, _) => let - val sc = strcat [str "inp(\"input\",", + val sc = strcat [str "inp(", (L'.EJavaScript (L'.Script, src), loc), - str ",\"\")"] + str ")"] val sc = setAttrs sc in (strcat [str "