&pgid();
 
 ¤ªÌ䤤¹ç¤ï¤»¥Õ¥©¡¼¥à¤Ç¤Ï³Îǧ²èÌ̤¬É½¼¨¤µ¤ì¤ë¤³¤È¤¬Â¿¤¤¤Ç¤¹¤¬¡¢¤½¤Î²èÌ̾å¤Çɽ¼¨¤µ¤ì¤ë³Æ¥Ç¡¼¥¿¤ËÂФ·¤Æ¥Þ¥¦¥¹¥ª¡¼¥Ð¡¼¤¹¤ë¤È¨¤½¤Î¾ì¤Ç½¤Àµ¤Ç¤­¤ë¤ÈÊØÍø¤«¤Ê¤È»×¤¤¡¢¤½¤ÎÊýË¡¤òõ¤·¤Æ¡¢¼ÂÁõ¤·¤Æ¤ß¤Þ¤·¤¿¡£Google Calendar¤ÎͽÄê¾ÜºÙÊÔ½¸²èÌ̤εóÆ°¤È¥¤¥á¡¼¥¸¤·¤Æ¤¤¤ë¤³¤È¤ÏƱ¤¸¤Ç¤¹¡£
 
 #blikimore();
 
 ºÇ½é¤Ë³Îǧ²èÌ̤ÎHTML¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡Ê¤´¤¯¤´¤¯´Êñ¤Ë¡Ë
 
  <html>
  <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   <script type="text/javascript" src="prototype.js"></script>
  </head>
  <body>
   <table>
     <tr>
         <td>²ñ¼Ò̾</td><td>¥¢¡¼¥¯¥¦¥§¥Ö</td>
     </tr>
     <tr>
         <td>¤ªÌ¾Á°</td><td>¿ÊÃÏ</td>
     </tr>
   </table>
   <form action="" method="post">
     <input type="hidden" name="company" value="¥¢¡¼¥¯¥¦¥§¥Ö" />
     <input type="hidden" name="name" value="¿ÊÃÏ" />
     <input type="submit" name="submit" value="Á÷¿®" />
   </form> 
  </body>
  </html>
 
 ²ñ¼Ò̾¤È¤ªÌ¾Á°¤È¤¤¤¦Æó¤Ä¤Î¹àÌܤ¬É½¼¨¤µ¤ì¡¢hidden¥Ñ¥é¥á¡¼¥¿¤È¤·¤Æ¤â»ý¤Ã¤Æ¤¤¤ë¤È¤¤¤¦Èó¾ï¤Ë¥·¥ó¥×¥ë¤ÊÎã¤Ç¤¹¡£¤³¤Î²ñ¼Ò̾¤È¤ªÌ¾Á°¤ÎÃÍ¡¢Îã¤Ç¸À¤¨¤Ð¡¢¥¢¡¼¥¯¥¦¥§¥Ö¤È¿ÊÃϤ˥ޥ¦¥¹¥ª¡¼¥Ð¡¼¤·¤¿»þ¤Ë¡¢¤½¤ì¤¾¤ì¤¬Ã±¤Ê¤ë¥Æ¥­¥¹¥Èɽ¼¨¤«¤é¥Æ¥­¥¹¥È¥Ü¥Ã¥¯¥¹¤ËÊѲ½¤¹¤ë¤è¤¦¤Ë¤·¤¿¤¤¡£¤½¤·¤Æ¡¢Ãͤνñ¤­´¹¤¨¤ò¹Ô¤¤¡¢¤½¤Î¤Þ¤ÞÁ÷¿®¥Ü¥¿¥ó¤ò²¡¤¹¤È¤ªÌ䤤¹ç¤ï¤»¥Õ¥©¡¼¥à¥×¥í¥°¥é¥à¤ËÂФ·¤Æ½ñ¤­´¹¤¨¤¿ÃͤòÁ÷¿®¤·¤¿¤¤¡£¤³¤³¤Þ¤Ç¤¬º£²ó¤ä¤ê¤¿¤¤¤³¤È¤Ç¤¹¡£prototype.js¤ò»È¤¦¤Î¤ÇËÁƬ¤Ç¥í¡¼¥É¤·¤Æ¤ª¤­¤Þ¤¹¡£¤Þ¤¿¡¢Ê¸»ú¥³¡¼¥É¤ÏUTF-8¤Ë¤·¤Æ¤ª¤­¤Þ¤¹¡£
 
 ¼¡¤Ë¡¢¥Þ¥¦¥¹¥ª¡¼¥Ð¡¼¤òÊä­¤¹¤ë¤¿¤á¤ËUI¤Î½àÈ÷¤ò¤·¤Þ¤¹¡£
 
     <tr>
         <td>²ñ¼Ò̾</td><td id="company_val">¥¢¡¼¥¯¥¦¥§¥Ö</td>
     </tr>
     <tr>
         <td>¤ªÌ¾Á°</td><td id="name_val">¿ÊÃÏ</td>
     </tr>
     ¡§
     ¡§
     <input type="hidden" id="company" name="company" value="¥¢¡¼¥¯¥¦¥§¥Ö" />
     <input type="hidden" id="name" name="name" value="¿ÊÃÏ" />
 
 ¤³¤³¤Ç¤Ïñ½ã¤Ë³ÆÃͤò³ÊǼ¤¹¤ë¥»¥ë¤ÈÃͤòÊÝ»ý¤·¤Æ¤¤¤ëhidden¥¿¥°¤òÆÃÄꤹ¤ë¤¿¤á¤ÎID¤ò¤Õ¤Ã¤Æ¤¤¤Þ¤¹¡£
 
 ¼¡¤Ë¡¢¥Þ¥¦¥¹¥ª¡¼¥Ð¡¼¤Ë¤è¤Ã¤Æ¥Æ¥­¥¹¥È¥Ü¥Ã¥¯¥¹¤ËÊѹ¹¡¢¥Õ¥©¡¼¥«¥¹¤¬Â¾¤ËÁ«°Ü¤¹¤ë»þ¤Ëɽ¼¨ÃͤÈhiddenÃͤÎÊѹ¹¤ò¹Ô¤¦¥¯¥é¥¹(EditableValue)¤òÄêµÁ¤·¤Þ¤¹¡£
 
  <script type="text/javascript">
  var EditableValue = Class.create();
  
  EditableValue.prototype = {
    initialize: function(target_id) {
      this.text = $(target_id);
      this.input = document.createElement('input');
      this.input.type = "text";
      this.text.parentNode.appendChild(this.input);
      var hidden_id = this.text.id.substr(0, this.text.id.indexOf('_'));
      this.hidden = $(hidden_id);
  
      Event.observe(this.text, 'mouseover', this.enableInput.bindAsEventListener(this), false);
      Event.observe(this.input, 'blur', this.disableInput.bindAsEventListener(this), false);
  
      Element.show(this.text);
      Element.hide(this.input);
    },
    enableInput: function() {
      this.input.value = this.text.innerHTML;
      Element.toggle(this.text, this.input);
      Field.focus(this.input);
    },
    disableInput: function() {
      this.text.innerHTML = this.input.value;
      this.hidden.value = this.input.value;
      Element.toggle(this.text, this.input);
    },
  };
  </script>
 
 initialize¡¢enableInput¡¢disableInput¤Ë¤Ï¤½¤ì¤¾¤ì¡¢EditableValue¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¡¢¥Þ¥¦¥¹¥ª¡¼¥Ð¡¼»þ¤Ëµ¯Æ°¤µ¤ì¤ë¥á¥½¥Ã¥É¡¢¥Õ¥©¡¼¥«¥¹¤¬Â¾¤ËÁ«°Ü¤¹¤ë»þ¤Ëµ¯Æ°¤µ¤ì¤ë¥á¥½¥Ã¥É¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£
 
 initialize¤Ç¤Ï¡¢ÅϤµ¤ì¤¿¥¿¡¼¥²¥Ã¥È¤ÎID(Îã¤Ç¤Ïcompany_val¤äname_val)¤«¤éprototype.js¤Î$()¥á¥½¥Ã¥É¤ò»È¤Ã¤ÆDOM¤ÎElement¥ª¥Ö¥¸¥§¥¯¥È¤ò¼èÆÀ¤·¤Æ¡¢this.text¤È¤·¤Æ¥»¥Ã¥È¤·¤Þ¤¹¡£¤Þ¤¿¡¢input¥¿¥°¤ÎElement¥ª¥Ö¥¸¥§¥¯¥È¤òÄêµÁ¤·¤Æ¡¢this.text¤Î¿Æ¤Î»Ò¡Ê¤Ä¤Þ¤ê¤Ïthis.text¤Î·»Äï¡Ë¤È¤·¤Æthis.input¤È¤·¤Æ¥»¥Ã¥È¤·¤Þ¤¹¡£ÃͤòÊÝ»ý¤·¤Æ¤¤¤ëhidden¤ÎElement¥ª¥Ö¥¸¥§¥¯¥È¤Îid¤ò¥¿¡¼¥²¥Ã¥È¤ÎID¤«¤éµá¤á¤Æ(Îã¤Ç¤Ï¡¢substring¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æcompany_val¡¢name_val¤«¤é¤½¤ì¤¾¤ìcompany¡¢name¤òºîÀ®¤·¤Æ¤¤¤Þ¤¹¡Ë¡¢$()¥á¥½¥Ã¥É¤ò»È¤Ã¤ÆÅö³ºhidden¥ª¥Ö¥¸¥§¥¯¥È¤òthis.hidden¤È¤·¤Æ¥»¥Ã¥È¤·¤Þ¤¹¡£
 
 ¤µ¤é¤Ë¡¢EventListener¤òÍøÍѤ·¤Æ¡¢this.text¤ËÂФ·¤Æmouseover¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿¾ì¹ç¤ËenableInput¤ËÄêµÁ¤·¤¿¥á¥½¥Ã¥É¤òµ¯Æ°¤¹¤ë¤è¤¦¤Ë¡¢this.input¤ËÂФ·¤Æblur¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿¾ì¹ç¤ËdisableInput¤ËÄêµÁ¤·¤¿¥á¥½¥Ã¥É¤òµ¯Æ°¤¹¤ë¤è¤¦¤Ë¥»¥Ã¥È¤·¤Þ¤¹¡£
 
 initialize¤Ç¤ÏºÇ¸å¤Ë¡¢this.text¤òɽ¼¨¡¢this.input¤òÈóɽ¼¨¤Ë¥»¥Ã¥È¤·¤Þ¤¹¡£
 
 ¥Þ¥¦¥¹¥ª¡¼¥Ð¡¼¥¤¥Ù¥ó¥È¤¬this.text¤ËÂФ·¤ÆȯÀ¸¤·¤¿¾ì¹ç¡¢enableInput¤ËÄêµÁ¤·¤¿¥á¥½¥Ã¥É¤¬¸Æ¤Ð¤ì¤Þ¤¹¡£¤³¤Î¥á¥½¥Ã¥É¤Ç¤Ï¡¢this.input¤ÎÃͤËthis.text¤¬ÊÝ»ý¤¹¤ëÃ͡ʡḽºßɽ¼¨¤·¤Æ¤¤¤ëÃ͡ˤò¥»¥Ã¥È¤·¡¢this.input¤òɽ¼¨¡¢this.text¤òÈóɽ¼¨¤ËÀÚ¤êÂؤ¨¤Æ¤¤¤Þ¤¹¡£
 
 ¥Õ¥©¡¼¥«¥¹¤¬this.input¤«¤é³°¤ì¤¿¾ì¹ç¡¢disableInput¤ËÄêµÁ¤·¤¿¥á¥½¥Ã¥É¤¬¸Æ¤Ð¤ì¤Þ¤¹¡£¤³¤Î¥á¥½¥Ã¥É¤Ç¤Ï¡¢this.input¤ÎÃͤòthis.text¤¬ÊÝ»ý¤¹¤ëÃͤÈthis.hidden¤ÎÃͤ˥»¥Ã¥È¤·¡¢this.input¤òÈóɽ¼¨¡¢this.text¤òɽ¼¨¤ËÀÚ¤êÂؤ¨¤Æ¤¤¤Þ¤¹¡£
 
 ºÇ¸å¤Ë¡¢¤³¤ÎEditableValue¥¯¥é¥¹¤Ë¤½¤ì¤¾¤ì¤Î¥¿¡¼¥²¥Ã¥ÈID¤òÅϤ·¤Ænew¤·¤Þ¤¹¡£
 
  <script type="text/javascript">
   new EditableValue('company_val');
   new EditableValue('name_val');
  </script>
 
 °Ê¾å¤Ç¡¢¥Þ¥¦¥¹¥ª¡¼¥Ð¡¼¤Ë¤è¤Ã¤ÆÅö³ºÃͤ¬ÊÔ½¸²Äǽ¤Ë¤Ê¤ê¡¢¥Õ¥©¡¼¥«¥¹¥¢¥¦¥È¤Ë¤è¤Ã¤ÆÊÔ½¸¤·¤¿Ãͤˤè¤Ã¤Æɽ¼¨¡¢¤ª¤è¤Óhidden¤Ë¥»¥Ã¥È¤µ¤ì¤¿Ãͤ¬Êѹ¹¤µ¤ì¤Þ¤¹¡£JavaScript¤ò²¾¤ËOff¤Ë¤·¤¿¥¯¥é¥¤¥¢¥ó¥È¤Ç¤¢¤Ã¤Æ¤â¡¢Ã±¤Ë¤³¤Î¥Þ¥¦¥¹¥ª¡¼¥Ð¡¼¤Ë¤è¤ëÊÔ½¸¤¬»È¤¨¤Ê¤¯¤Ê¤ë¤À¤±¤Ç½¾Íè¤ÎÆ°¤­¤ÏÊݾ㤵¤ì¤Þ¤¹¡Ê¡á¥Ç¥°¥ì¡¼¥É²Äǽ¤ÊAjax¡Ë¡£
 
 º£²ó¤ÎÎã¤Î¤è¤¦¤Ë¥¯¥é¥¹¤ÈEventListener¤ò»È¤¦¤È¡¢²¼µ­¤Î¤è¤¦¤Ë¥¿¡¼¥²¥Ã¥È¤Î¥¿¥°¤ËÂФ·¤Æ¥¤¥Ù¥ó¥È¤òµ­½Ò¤·¤Ê¤¯¤Æ¤âñ¤Ëid¤ò¿¶¤ë¤À¤±¤Ç¥³¥ó¥È¥í¡¼¥ë²Äǽ¤Ë¤Ê¤ë¤¿¤á¡¢HTML¤Ï±ø¤ì¤º¡¢¥¤¥Ù¥ó¥È¤Ë¤è¤ëÁ«°Ü¤â¥¯¥é¥¹Æâ¤Ç½¸Ãæ´ÉÍý¤Ç¤­¤Æ¹½ÃÛ¤¬¤È¤Æ¤â³Ú¤Ë¤Ê¤ê¤Þ¤¹¡£
 
     <tr>
         <td>²ñ¼Ò̾</td><td id="company_val" onmouseover="hoge(this)">¥¢¡¼¥¯¥¦¥§¥Ö</td>
     </tr>
     <tr>
         <td>¤ªÌ¾Á°</td><td id="name_val" onmouseover="hoge(this)">¿ÊÃÏ</td>
     </tr>
 
 **»²¹Í [#w2d3dd5f]
 -[[prototype.js ¤ò¤Á¤ã¤ó¤È»È¤Ã¤Æ¤ß¤ë¡£>http://blog.shebang.jp/archives/50174235.html]]~
 -[[prototype.js ¥ê¥Õ¥¡¥ì¥ó¥¹>http://www.openspc2.org/JavaScript/Ajax/ref/prototype.js/ver1.4/index.html]]
 
 **Êä­ [#aefd3785]
 
 mouseover¤Èblur¤ÎÁȤ߹ç¤ï¤»¤À¤È¡¢FireFox¤Ç¤Ï(¤ª¤è¤ÓGecko-engine¤Î¥Ö¥é¥¦¥¶¤Ç¤Ï¡Ë
  Permission denied to set property XULElement.selectedIndex
  NS_ERROR_XPC_JS_THREW_STRING
 ¤È¤¤¤¦Exception¤¬È¯À¸¤·¤Þ¤¹¡£
 
 http://groups.google.ca/group/netscape.public.mozilla.dom/browse_thread/thread/821271ca11a1bdbf/46c87b49c026246f?lnk=st&q=+focus+nsIAutoCompletePopup+selectedIndex&rnum=1
 http://www.macridesweb.com/oltest/FocusProblems.html
 
 ÂбþÊýË¡¤È¤·¤Æ¤Ï¡¢form¥¿¥°¤ËÂФ·¤Æ¡¢autocomplete="off"¤ò»ØÄꤷ¤Þ¤¹¡£
 º£²ó¤ÎÎã¤Ç¤Ï
 
  <form method="post" action="" autocomplete="off">
 
 ¤È¤·¤Þ¤¹¡£
 
 #blikifooter(¿ÊÃÏ);
 
 tag: [[PukiWiki>tag/PukiWiki]], [[Ajax>tag/Ajax]], [[prototype.js>tag/prototype.js]]
 
 

¥È¥Ã¥×   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS

¥¢¡¼¥¯¥¦¥§¥Ö¤Î¥µ¡¼¥Ó¥¹¤ä¥½¥ê¥å¡¼¥·¥ç¥ó¤Ï¤³¤Á¤é