-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
目前 placeholder 实现方案的缺陷 #4
Comments
赞冒顿的分析,placeholder 的原作者看下,讨论确定并修改之 2013/6/4 闲耘(tm) [email protected]
王保平 / 玉伯(射雕) |
第一条很重要:“不影响输入框的值”。月初网站上线,ie下死活登不上去,最后跟踪发现是password提交给MD5编码的值包含了“密码”两个字,现在只是注掉了对密码input的处理 在IE10下也是有问题的,暂时也是加了try catch来处理 |
其实最早的时候就是用的 模拟dom 的方案,可惜定位问题太难解决,就改成 https://github.com/mathiasbynens/jquery-placeholder 这个了 |
只是一个功能扩展不应该太多的依赖样式来解决,相对定位绝对定位搞不好还会对其它东西产生影响 前些日子基于jQuery也实现了一个placeholder扩展,我是通过clone一个input并把原来的input隐藏的方法实现的,当clone的input值发生变化的时候同步修改隐藏的input
不会直接修改input的值
隐藏的input发生变化后,通过判断才会更新原input的值,所以应该没有此问题
通过增加一个标志来判断是input为空时自动添加的值,还是用户手工输入的
这个似乎不是必须的,ie上有时也没法追求完美 我不是专业的前端,不知道是不是有没考虑周全的地方,一个简单的demo |
clone input 的方案不用考虑。
|
@hotoo 性能原因? |
@dqw 不是,为了一个辅助的 placeholder 功能,复制一遍表单的全部表单项,不值当。 |
这个问题是没有的。 |
初步看了代码,placeholder 使用设置 value 的方式来模拟 placeholder 效果,这种方案有以下几种缺陷:
我目前已知更好的方案是使用 label.placeholder[for=input] 覆盖在 input 上。
建议着重考虑这个方案,优点:
缺点:
The text was updated successfully, but these errors were encountered: