またサポートで内容を検討中
入力フォームについて(1)
http://oshiete.goo.ne.jp/qa/7498460.html
回答してみたが、また IE でつまずいた。
String.split(//) は、要注意。忘れてた。
<!DOCTYPE html> <title>履歴</title> <style> textarea { width : 600px; margin :1ex; } fieldset.text { width : 400px; float:left; } fieldset.auxiliary { width :200px; } fieldset p { border: 1px #888 dotted; } </style> <body> <form action="#" name="abc"> <div> <fieldset class="text"> <legend>入力項目</legend> <textarea rows="10" name="@inpform">【ご要望】 【対応概要】 </textarea><br> <textarea rows="10" name="@textform"></textarea> </fieldset> <fieldset class="auxiliary"> <legend>入力補助</legend> <p> <input type="button" name="@time_button" value="日時挿入"> </p> <p> 対応者<br> <input type="radio" name="@taiou" value="" checked>未指定<br> <input type="radio" name="@taiou" value="伊藤博文" >伊藤<br> <input type="radio" name="@taiou" value="原 敬" >原<br> <input type="radio" name="@taiou" value="鈴木善幸" >鈴木<br> </p> <p> 一次受<br> <input type="radio" name="@itiji" value="" checked>未指定<br> <input type="radio" name="@itiji" value="菅直人" >菅<br> <input type="radio" name="@itiji" value="麻生太郎" >麻生<br> </p> <p> 入電者<br> <input type="radio" name="@nyuuden" value="" checked>未指定<br> <input type="radio" name="@nyuuden" value="本人" >本人<br> <input type="radio" name="@nyuuden" value="配偶者" >配偶者<br> <input type="radio" name="@nyuuden" value="外" >外<br> </p> </fieldset> </div> </form> <script> //@cc_on @set @mode=(@_jscript_version<9); var FORM_ELEMENTS = document.forms[0].elements; var NOT_LF = /\r\n|\r/g; function dispTime () { var e = FORM_ELEMENTS['@inpform']; var texts = e.value; var inpTextTime = getTextLine (texts, 3); var t; if (! inpTextTime) e.value = replaceTextLine (texts, 3, getDateString ()); e = FORM_ELEMENTS['@textform']; texts = e.value; t = getTextLine (texts, 0); if (! t) t = '時間:' + getTimeString () + '-'; else if (/-$/.test (t)) t += getTimeString (); else return; e.value = replaceTextLine (texts, 0, t); } function dispTaiou (element) { var e = FORM_ELEMENTS['@inpform']; var texts = e.value; e.value = replaceTextLine (texts, 5, '対応者:' + element.value); } function dispItiji (element) { var e = FORM_ELEMENTS['@textform']; var texts = e.value; e.value = replaceTextLine (texts, 1, '一次受:' + element.value); } function dispNyuuden (element) { var e = FORM_ELEMENTS['@textform']; var texts = e.value; e.value = replaceTextLine (texts, 2, '入電者:' + element.value); } function getTimeString (date) { if (! date) date = new Date; return [ padding (date.getHours ()), padding (date.getMinutes ()), padding (date.getSeconds ()) ].join (':'); } function getDateString (date) { if (! date) date = new Date; return [ padding (date.getFullYear ()), padding (date.getMonth () + 1), padding (date.getDate ()) ].join ('/'); } function replaceTextLine (texts, row, text) { var tmp = texts.replace (NOT_LF, '\n').split ('\n'); tmp[row] = text; return tmp.join ('\n'); } function getTextLine (texts, row) { var tmp = texts.replace (NOT_LF, '\n').split ('\n'); return tmp[row] || ''; } function padding (num, z) { var def = z || 2; return ((new Array (def)).join ('0') + num).slice (-def); } function clickHandler (event) { var element = event./*@if(@mode) srcElement /*@else@*/ target /*@end@*/; switch (element.name) { case '@time_button' : dispTime (element); break; case '@taiou' : if (element.checked) dispTaiou (element); break; case '@itiji' : if (element.checked) dispItiji (element); break; case '@nyuuden' : if (element.checked) dispNyuuden (element); break; } } document./*@if(@mode) attachEvent ('on'+ @else@*/ addEventListener (/*@end@*/ 'click', clickHandler, false); </script>