作者kerash (烽火连天依山尽)
看板Ajax
标题Re: [问题] 当input的type=password时的问题
时间Sun Mar 18 21:19:37 2012
※ 引述《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
1F:推 s25g5d4:这样能成功才有鬼...check_pw後面不能接() 03/18 21:46
2F:→ kerash:楼上,你想勘正口气有需要这麽冲啊? 我都说是略写了 03/18 22:00
3F:→ s25g5d4:阿..抱歉@@" 03/18 22:01
4F:→ kerash:我原始测试时写的是 onkeydown = new function() { 03/18 22:01
5F:→ kerash:check_pw(); } 这样应该是可以跑了吧?? 因为当时是想测试 03/18 22:01
6F:→ s25g5d4:只是我认为有些人可能直接copy过去了 然後失败= = 03/18 22:01
7F:→ kerash:带参数 03/18 22:01
8F:→ kerash:恩,没关系,只是我觉得没人回答结果一回答就是这种回复 03/18 22:02
9F:→ kerash:那解答的人会变得不想解了 03/18 22:02
10F:推 cjoe:楼上两位都是本版的大好人 :D 和气和气 03/18 22:03
11F:推 pa015596:感谢大大的回覆 又学到一招了 03/18 23:37
12F:→ TonyQ:我觉得s25的意见有道理,略写观念也要对,错误的答案比不回 03/19 09:06
13F:→ TonyQ:答还害人浪费时间。 03/19 09:06
14F:→ TonyQ:你这样写的确有观念上不够清楚甚至容易让人混淆的地方 03/19 09:08
15F:→ TonyQ:另外解答是个人意愿,观念是有可能会害到人的,人家帮你指正 03/19 09:09
16F:→ TonyQ:是帮你,而且从你写new Function 看起来你fn用的也还不多, 03/19 09:10
17F:→ TonyQ:先问范例对错再论语气吧。 03/19 09:11
18F:→ TonyQ:晚点再补一篇说明。 03/19 09:11
19F:→ TonyQ:真正的写法是 onkeydown=check_pw; 这样才是把函数绑定 03/19 09:16
20F:→ TonyQ:onkeydown=check_pw();是把函数执行完的结果绑定,如果 03/19 09:18
21F:→ TonyQ:check_pw() 不是回传 function ,那有写等於没写。 03/19 09:19
22F:→ TonyQ:略写或虚拟码是建立在观念正确的状况下.... 03/19 09:20
不好意思我用 E 文回覆
先说明我不会是纠正我解答我会不高兴的人
js 我熟我自己会使用的部分,我自知没像 TonyQ 大你学的多
如果愿意纠正答案我也接受像你提供整个范例或指出原因
而不是一回答就像把整个答案否定掉。
确实我熟的不多,我不是专职 js ,比不上这边很多人我相信
但我相信比起觉得问题简单而不答,不如有人回答然後再补充讨论会来的好
仅於此.
另我原始是写 new Function 跑没错
但最後我是改为 onkeydown = func_name;
只是确实忘记把 () 删除而已
不过我相信这样还是有缺漏之处,请见谅了
※ 编辑: kerash 来自: 114.34.30.6 (03/19 09:40)
23F:→ TonyQ:1.我并不觉得这里的人有因为问题简单而不答 03/19 10:16
24F:→ TonyQ:2.如果回答的方向是错的,慎制式有误导之嫌的,如果我是你 03/19 10:16
25F:→ TonyQ: 我会觉得很惭愧并且感谢更正我的人。 03/19 10:17
26F:→ TonyQ: *甚至是 03/19 10:17
27F:→ TonyQ:一个错误的答案可能会让使用者测试浪费超过一两个小时, 03/19 10:17
28F:→ TonyQ:就只是因为它相信你的答案,给出答案时要尽量小心。 03/19 10:17
29F:→ TonyQ:3.一般而言,我们不会用 new Function,因为这样会建出新的 03/19 10:18
30F:→ TonyQ: function instance,建议是用 function(){} 定义就好 03/19 10:20
31F:→ TonyQ: 有用到 new 的时机通常是 1. 我有需要利用 prototype 03/19 10:20
32F:→ TonyQ: 2. 我有需要用到 "this" 03/19 10:20
33F:→ TonyQ:我并不是在批评你的善意,你出发点是好的;只是给出程式码 03/19 10:22
34F:→ TonyQ:之前稍微测试一下,并没有这麽难,你多花个五秒钟,使用者 03/19 10:22
35F:→ TonyQ:可能就可以少测试个一小时。 03/19 10:23
36F:→ TonyQ:而这些话也是以前同样有人跟我说过的,我只是传承下去。 03/19 10:25
37F:→ kerash:其实我有测试过了,就是因为测试成功才丢出来,只是就多了 03/19 11:20
38F:→ kerash:那个()没注意到,如果说这个解答只是笔误也像是整个错的话 03/19 11:20
39F:→ kerash:那就代表我测试都是错的,而不会正常执行。 03/19 11:21
40F:→ kerash:我纯粹想表达的是勘正回答的态度不用这麽急,我知道s是出 03/19 11:23
41F:→ kerash:於好心,但是为了解答我也是测试并且找过一些资料来帮忙回 03/19 11:24
42F:→ kerash:答,而不是只是按ctrl+y 就直接 post 03/19 11:25
43F:→ kerash:tony大你说的那些我知道,但如果我个人身为发问,只要有方 03/19 11:25
44F:→ kerash:向,总比发问後石沉大海来的好。 但这也是我个人想法罢了 03/19 11:26