expandinput.html - jscancer - Javascript crap (relatively small) | |
git clone git://git.codemadness.org/jscancer | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
expandinput.html (2021B) | |
--- | |
1 <style type="text/css"> | |
2 textarea.textarea-expanded:focus { | |
3 position: absolute; | |
4 right: 3px; | |
5 width: 600px; | |
6 height: 400px; | |
7 } | |
8 </style> | |
9 | |
10 <table width="100%"> | |
11 <thead> | |
12 <tr><th align="left">Name</th><th align="right">Note</th></tr> | |
13 </thead> | |
14 <tbody> | |
15 <tr><td>Test1</td><td align="right"><textarea name="input1" clas… | |
16 <tr><td>Test2</td><td align="right"><textarea name="input2" clas… | |
17 <tr><td>Test3</td><td align="right"><textarea name="input3" clas… | |
18 <tr><td>Test4</td><td align="right"><textarea name="input4" clas… | |
19 </tbody> | |
20 </table> | |
21 | |
22 <script type="text/javascript"> | |
23 /* show up to first newline in input */ | |
24 function textarea_expand_value(v) { | |
25 if (typeof(v) == "undefined") | |
26 return ""; | |
27 var idx = v.indexOf("\n"); | |
28 if (idx != -1) | |
29 return v.substring(0, idx); | |
30 return v; | |
31 } | |
32 | |
33 function element_set_visible(el, vis) { | |
34 // el.style.visibility = vis ? "visible" : "hidden"; | |
35 el.hidden = !vis; | |
36 } | |
37 | |
38 /* expand input to textarea for notes */ | |
39 var els = document.querySelectorAll("textarea.textarea-expand"); | |
40 for (var i = 0; i < els.length; i++) { | |
41 var textarea = els[i]; | |
42 textarea.classList.add("textarea-expanded"); /* initialized in J… | |
43 | |
44 var input = document.createElement("input"); | |
45 input.type = "text"; | |
46 input.className = textarea.className; /* set the same class on t… | |
47 input.value = textarea_expand_value(textarea.value); | |
48 | |
49 element_set_visible(textarea, false); | |
50 textarea.parentElement.insertBefore(input, textarea); | |
51 | |
52 input.onfocus = (function(input, textarea) { | |
53 return function() { | |
54 element_set_visible(input, false); | |
55 element_set_visible(textarea, true); | |
56 textarea.focus(); | |
57 }; | |
58 })(input, textarea); | |
59 | |
60 textarea.onblur = (function(input, textarea) { | |
61 return function() { | |
62 element_set_visible(textarea, false); | |
63 element_set_visible(input, true); | |
64 input.value = textarea_expand_value(textarea.val… | |
65 }; | |
66 })(input, textarea); | |
67 } | |
68 </script> |