看板 Ajax 關於我們 聯絡資訊
※ 引述《pa015596 (sdfgdgf)》之銘言: : 請問當input的type為password時 : Keyboard Events 是否皆無作用(不會觸發) : CODE如下 : <input type="password" name="user_passwd"id="pw" onkeydown="check_pw()> : 不管我按下什麼鍵都不會呼叫check_pw() : 但是當type="text"時確定可行 : 請高手幫忙 謝謝 剛剛測了一下,用 <input type='password' id='pwd' onclick='alert("ok")' /> 可以跑 但用 <input type='password' id='pwd' onclick='func()' /> 就不行 所以改用 window.onload = function() { document.getElementById("pwd").onkeydown = check_pw; //刊正 } 的方式來做就可以成功了 (上面的 code 有點略寫,不過意思大概就是這樣) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.186.193
s25g5d4:這樣能成功才有鬼...check_pw後面不能接() 03/18 21:46
kerash:樓上,你想勘正口氣有需要這麼衝啊? 我都說是略寫了 03/18 22:00
s25g5d4:阿..抱歉@@" 03/18 22:01
kerash:我原始測試時寫的是 onkeydown = new function() { 03/18 22:01
kerash:check_pw(); } 這樣應該是可以跑了吧?? 因為當時是想測試 03/18 22:01
s25g5d4:只是我認為有些人可能直接copy過去了 然後失敗= = 03/18 22:01
kerash:帶參數 03/18 22:01
kerash:恩,沒關係,只是我覺得沒人回答結果一回答就是這種回復 03/18 22:02
kerash:那解答的人會變得不想解了 03/18 22:02
cjoe:樓上兩位都是本版的大好人 :D 和氣和氣 03/18 22:03
pa015596:感謝大大的回覆 又學到一招了 03/18 23:37
TonyQ:我覺得s25的意見有道理,略寫觀念也要對,錯誤的答案比不回 03/19 09:06
TonyQ:答還害人浪費時間。 03/19 09:06
TonyQ:你這樣寫的確有觀念上不夠清楚甚至容易讓人混淆的地方 03/19 09:08
TonyQ:另外解答是個人意願,觀念是有可能會害到人的,人家幫你指正 03/19 09:09
TonyQ:是幫你,而且從你寫new Function 看起來你fn用的也還不多, 03/19 09:10
TonyQ:先問範例對錯再論語氣吧。 03/19 09:11
TonyQ:晚點再補一篇說明。 03/19 09:11
TonyQ:真正的寫法是 onkeydown=check_pw; 這樣才是把函數綁定 03/19 09:16
TonyQ:onkeydown=check_pw();是把函數執行完的結果綁定,如果 03/19 09:18
TonyQ:check_pw() 不是回傳 function ,那有寫等於沒寫。 03/19 09:19
TonyQ:略寫或虛擬碼是建立在觀念正確的狀況下.... 03/19 09:20
不好意思我用 E 文回覆 先說明我不會是糾正我解答我會不高興的人 js 我熟我自己會使用的部分,我自知沒像 TonyQ 大你學的多 如果願意糾正答案我也接受像你提供整個範例或指出原因 而不是一回答就像把整個答案否定掉。 確實我熟的不多,我不是專職 js ,比不上這邊很多人我相信 但我相信比起覺得問題簡單而不答,不如有人回答然後再補充討論會來的好 僅於此. 另我原始是寫 new Function 跑沒錯 但最後我是改為 onkeydown = func_name; 只是確實忘記把 () 刪除而已 不過我相信這樣還是有缺漏之處,請見諒了 ※ 編輯: kerash 來自: 114.34.30.6 (03/19 09:40)
TonyQ:1.我並不覺得這裡的人有因為問題簡單而不答 03/19 10:16
TonyQ:2.如果回答的方向是錯的,慎制式有誤導之嫌的,如果我是你 03/19 10:16
TonyQ: 我會覺得很慚愧並且感謝更正我的人。 03/19 10:17
TonyQ: *甚至是 03/19 10:17
TonyQ:一個錯誤的答案可能會讓使用者測試浪費超過一兩個小時, 03/19 10:17
TonyQ:就只是因為它相信你的答案,給出答案時要盡量小心。 03/19 10:17
TonyQ:3.一般而言,我們不會用 new Function,因為這樣會建出新的 03/19 10:18
TonyQ: function instance,建議是用 function(){} 定義就好 03/19 10:20
TonyQ: 有用到 new 的時機通常是 1. 我有需要利用 prototype 03/19 10:20
TonyQ: 2. 我有需要用到 "this" 03/19 10:20
TonyQ:我並不是在批評你的善意,你出發點是好的;只是給出程式碼 03/19 10:22
TonyQ:之前稍微測試一下,並沒有這麼難,你多花個五秒鐘,使用者 03/19 10:22
TonyQ:可能就可以少測試個一小時。 03/19 10:23
TonyQ:而這些話也是以前同樣有人跟我說過的,我只是傳承下去。 03/19 10:25
kerash:其實我有測試過了,就是因為測試成功才丟出來,只是就多了 03/19 11:20
kerash:那個()沒注意到,如果說這個解答只是筆誤也像是整個錯的話 03/19 11:20
kerash:那就代表我測試都是錯的,而不會正常執行。 03/19 11:21
kerash:我純粹想表達的是勘正回答的態度不用這麼急,我知道s是出 03/19 11:23
kerash:於好心,但是為了解答我也是測試並且找過一些資料來幫忙回 03/19 11:24
kerash:答,而不是只是按ctrl+y 就直接 post 03/19 11:25
kerash:tony大你說的那些我知道,但如果我個人身為發問,只要有方 03/19 11:25
kerash:向,總比發問後石沉大海來的好。 但這也是我個人想法罷了 03/19 11:26