Re: [問題] 當input的type=password時的問題

看板Ajax作者 (烽火連天依山盡)時間14年前 (2012/03/18 21:19), 編輯推噓3(3041)
留言44則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《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

03/18 21:46, , 1F
這樣能成功才有鬼...check_pw後面不能接()
03/18 21:46, 1F

03/18 22:00, , 2F
樓上,你想勘正口氣有需要這麼衝啊? 我都說是略寫了
03/18 22:00, 2F

03/18 22:01, , 3F
阿..抱歉@@"
03/18 22:01, 3F

03/18 22:01, , 4F
我原始測試時寫的是 onkeydown = new function() {
03/18 22:01, 4F

03/18 22:01, , 5F
check_pw(); } 這樣應該是可以跑了吧?? 因為當時是想測試
03/18 22:01, 5F

03/18 22:01, , 6F
只是我認為有些人可能直接copy過去了 然後失敗= =
03/18 22:01, 6F

03/18 22:01, , 7F
帶參數
03/18 22:01, 7F

03/18 22:02, , 8F
恩,沒關係,只是我覺得沒人回答結果一回答就是這種回復
03/18 22:02, 8F

03/18 22:02, , 9F
那解答的人會變得不想解了
03/18 22:02, 9F

03/18 22:03, , 10F
樓上兩位都是本版的大好人 :D 和氣和氣
03/18 22:03, 10F

03/18 23:37, , 11F
感謝大大的回覆 又學到一招了
03/18 23:37, 11F

03/19 09:06, , 12F
我覺得s25的意見有道理,略寫觀念也要對,錯誤的答案比不回
03/19 09:06, 12F

03/19 09:06, , 13F
答還害人浪費時間。
03/19 09:06, 13F

03/19 09:08, , 14F
你這樣寫的確有觀念上不夠清楚甚至容易讓人混淆的地方
03/19 09:08, 14F

03/19 09:09, , 15F
另外解答是個人意願,觀念是有可能會害到人的,人家幫你指正
03/19 09:09, 15F

03/19 09:10, , 16F
是幫你,而且從你寫new Function 看起來你fn用的也還不多,
03/19 09:10, 16F

03/19 09:11, , 17F
先問範例對錯再論語氣吧。
03/19 09:11, 17F

03/19 09:11, , 18F
晚點再補一篇說明。
03/19 09:11, 18F

03/19 09:16, , 19F
真正的寫法是 onkeydown=check_pw; 這樣才是把函數綁定
03/19 09:16, 19F

03/19 09:18, , 20F
onkeydown=check_pw();是把函數執行完的結果綁定,如果
03/19 09:18, 20F

03/19 09:19, , 21F
check_pw() 不是回傳 function ,那有寫等於沒寫。
03/19 09:19, 21F

03/19 09:20, , 22F
略寫或虛擬碼是建立在觀念正確的狀況下....
03/19 09:20, 22F
不好意思我用 E 文回覆 先說明我不會是糾正我解答我會不高興的人 js 我熟我自己會使用的部分,我自知沒像 TonyQ 大你學的多 如果願意糾正答案我也接受像你提供整個範例或指出原因 而不是一回答就像把整個答案否定掉。 確實我熟的不多,我不是專職 js ,比不上這邊很多人我相信 但我相信比起覺得問題簡單而不答,不如有人回答然後再補充討論會來的好 僅於此. 另我原始是寫 new Function 跑沒錯 但最後我是改為 onkeydown = func_name; 只是確實忘記把 () 刪除而已 不過我相信這樣還是有缺漏之處,請見諒了 ※ 編輯: kerash 來自: 114.34.30.6 (03/19 09:40)

03/19 10:16, , 23F
1.我並不覺得這裡的人有因為問題簡單而不答
03/19 10:16, 23F

03/19 10:16, , 24F
2.如果回答的方向是錯的,慎制式有誤導之嫌的,如果我是你
03/19 10:16, 24F

03/19 10:17, , 25F
我會覺得很慚愧並且感謝更正我的人。
03/19 10:17, 25F

03/19 10:17, , 26F
*甚至是
03/19 10:17, 26F

03/19 10:17, , 27F
一個錯誤的答案可能會讓使用者測試浪費超過一兩個小時,
03/19 10:17, 27F

03/19 10:17, , 28F
就只是因為它相信你的答案,給出答案時要盡量小心。
03/19 10:17, 28F

03/19 10:18, , 29F
3.一般而言,我們不會用 new Function,因為這樣會建出新的
03/19 10:18, 29F

03/19 10:20, , 30F
function instance,建議是用 function(){} 定義就好
03/19 10:20, 30F

03/19 10:20, , 31F
有用到 new 的時機通常是 1. 我有需要利用 prototype
03/19 10:20, 31F

03/19 10:20, , 32F
2. 我有需要用到 "this"
03/19 10:20, 32F

03/19 10:22, , 33F
我並不是在批評你的善意,你出發點是好的;只是給出程式碼
03/19 10:22, 33F

03/19 10:22, , 34F
之前稍微測試一下,並沒有這麼難,你多花個五秒鐘,使用者
03/19 10:22, 34F

03/19 10:23, , 35F
可能就可以少測試個一小時。
03/19 10:23, 35F

03/19 10:25, , 36F
而這些話也是以前同樣有人跟我說過的,我只是傳承下去。
03/19 10:25, 36F

03/19 11:20, , 37F
其實我有測試過了,就是因為測試成功才丟出來,只是就多了
03/19 11:20, 37F

03/19 11:20, , 38F
那個()沒注意到,如果說這個解答只是筆誤也像是整個錯的話
03/19 11:20, 38F

03/19 11:21, , 39F
那就代表我測試都是錯的,而不會正常執行。
03/19 11:21, 39F

03/19 11:23, , 40F
我純粹想表達的是勘正回答的態度不用這麼急,我知道s是出
03/19 11:23, 40F

03/19 11:24, , 41F
於好心,但是為了解答我也是測試並且找過一些資料來幫忙回
03/19 11:24, 41F

03/19 11:25, , 42F
答,而不是只是按ctrl+y 就直接 post
03/19 11:25, 42F

03/19 11:25, , 43F
tony大你說的那些我知道,但如果我個人身為發問,只要有方
03/19 11:25, 43F

03/19 11:26, , 44F
向,總比發問後石沉大海來的好。 但這也是我個人想法罷了
03/19 11:26, 44F
文章代碼(AID): #1FPU3i-I (Ajax)
討論串 (同標題文章)
文章代碼(AID): #1FPU3i-I (Ajax)