diff lib/js/urweb.js @ 2079:e1879ded8095

Textual HTML5 AJAX widgets
author Adam Chlipala <adam@chlipala.net>
date Sun, 16 Nov 2014 15:03:29 -0500
parents 7c2229aa22fc
children f05fcb206571
line wrap: on
line diff
--- a/lib/js/urweb.js	Sun Nov 16 14:39:38 2014 -0500
+++ b/lib/js/urweb.js	Sun Nov 16 15:03:29 2014 -0500
@@ -1038,28 +1038,44 @@
     return x;
 }
 
-function inp(s, name) {
+function inpt(type, s, name) {
     if (suspendScripts)
         return;
 
     var x = input(document.createElement("input"), s,
-                  function(x) { return function(v) { if (x.value != v) x.value = v; }; }, "text", name);
+                  function(x) { return function(v) { if (x.value != v) x.value = v; }; }, type, name);
     x.value = s.data;
     x.onkeyup = x.oninput = x.onchange = x.onpropertychange = function() { sv(s, x.value) };
 
     return x;
 }
 
+function inp(s, name) {
+    return inpt("text", s, name);
+}
+
 function password(s, name) {
-    if (suspendScripts)
-        return;
+    return inpt("password", s, name);
+}
 
-    var x = input(document.createElement("input"), s,
-                  function(x) { return function(v) { if (x.value != v) x.value = v; }; }, "password", name);
-    x.value = s.data;
-    x.onkeyup = x.oninput = x.onchange = x.onpropertychange = function() { sv(s, x.value) };
+function email(s, name) {
+    return inpt("email", s, name);
+}
 
-    return x;
+function search(s, name) {
+    return inpt("search", s, name);
+}
+
+function url(s, name) {
+    return inpt("url", s, name);
+}
+
+function tel(s, name) {
+    return inpt("tel", s, name);
+}
+
+function color(s, name) {
+    return inpt("color", s, name);
 }
 
 function selectValue(x) {