&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

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