創作內容

1 GP

javascript 點兩下可修改文字

作者:Shuinvy│2013-01-16 12:21:36│巴幣:2│人氣:1618
因為需要可修改,
所以我嘗試用table和input type="text"結合這一切的假象XDD

首先,思考是:
雙點table(也就是顯示文字的部份),
接著輸入框顯示,輸入完內容後按下enter,則輸入框隱藏,而原本table的字改變成跟輸入框的一樣。

以下是部分程式碼(完整的在下方):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html"; charset="utf-8">
<title></title>
</head>
<script type="text/javascript">
    function CanModify()
    {
        document.getElementById('input').style.display='block';
        
    }
    function DisModify()
    {
        if (event.keyCode == 13)
        {
            document.getElementById('input').style.display='none';
        
            var contents=document.getElementById('input').value;
            document.getElementById('content').innerHTML = contents;
            
        }
    }
</script>
<body bgcolor="#FFCC99">
<table style="border: 1px; background-color: #aaeeaa; width: 155px;" ondblclick="CanModify()">
<tr>
<td><div id="content">123</div>
</td>
</tr>
</table>
<input type="text" id="input" name="test" value="123" style="display:none;" disabled="disable" onKeyDown="DisModify()" onKeyPress="DisModify()">
</body>    
</html>

這邊所做的就是:
點兩下文字後,輸入框就會顯示出來,當你輸入內容後,按下enter,輸入框隱藏,而table的文字也改變。
此程式以IE瀏覽器為主,若要適用火狐或crome,可能要去查語法相容性(因為火狐好像不適用→都是onkeypress還是onpeydown的關係!!!就是因為這樣我才用兩個,其實用一個就可以了。我記得還有另一個是火狐才看得懂的 但是因為工作只要求IE就算了Orz)

最後一步,就是讓table和輸入框的位置重疊,就可以製造這完美的假象了XDD
(瀏覽器步相容還較完美??←是語法的問題呀!咬我!)

所以結果就是:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html"; charset="utf-8">
<title></title>
</head>
<script type="text/javascript">
    function CanModify()
    {
        document.getElementById('input').style.display='block';
        document.getElementById('input').focus();
    }
    function DisModify()
    {
        if (event.keyCode == 13)
        {
            document.getElementById('input').style.display='none';
        
            var contents=document.getElementById('input').value;
            document.getElementById('content').innerHTML = contents;
            
        }
    }
</script>
<body bgcolor="#FFCC99">
<table style="z-index: 2; border: 1px; background-color: #aaeeaa; width: 155px;" ondblclick="CanModify()">
<tr>
<td><div id="content">123</div>
</td>
</tr>
</table>
<input type="text" id="input" name="test" value="123" style="display:none; height:20px; z-index: 1; position: absolute; top: 7px;" onKeyDown="DisModify()" onKeyPress="DisModify()">
</body>    
</html>

因為文字的大小table和輸入框的不太一樣,可以再思考font-size。
還有位置要小心有些人螢幕大小不同(像SV的螢幕就是大螢幕XDDD不是4比3),
所以要用絕對位置(但因為每個螢幕可能不同,顯示的位置也可能....要測才知道)。

如果是客戶輸入需要修改時,按下enter後,將資料送出到server端,
那就用php吧!(事實上我這個就是放php而不是html)
一樣也是enter的事件判斷,
然後將內容以php變數來改。


好像總是網路上找資料,從來沒有發表程式的教學文Orz

有機會我再找個空間來發表專屬的程式教學文好了......

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=1867309
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 1 篇留言

猫の影

01-16 20:11

Shuinvy
哈謝啦XDD
我後來在點部落有了自己的資訊部落格,
這樣以後就把資訊的東西丟那邊就好了^^
真的很謝謝你的捧場喔~[e24]01-17 21:24
我要留言提醒:您尚未登入,請先登入再留言

1喜歡★yokunandu 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:遊戲─獨二無三... 後一篇:SV的小遊戲第二彈─連連...

追蹤私訊切換新版閱覽

作品資料夾

chanxin95107所有老師們
翻譯菜鳥一枚,放了些蔚藍檔案的翻譯作品在小屋裡,有興趣的歡迎挑看選看( • ̀ω•́ )✧看更多我要大聲說昨天08:46


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】