javascript - 如何防止占位符覆盖 autocomplete="off"?
问题描述
向文本输入元素添加占位符属性似乎否定了我的 autocomplete="off" 属性。
即它恢复了显示先前条目的烦人的香蕉黄色下拉菜单。(更糟糕的是,下拉菜单似乎从浏览器打开的与我的页面无关的窗口中输入的内容中获得了一些建议的输入。)
进一步来说:
此元素没有带有先前条目的烦人的小香蕉黄色下拉菜单。
<input class="textbox"
type="text"
name="firstname"
value="" autocomplete="off">
但如果我添加占位符属性,香蕉黄色下拉菜单会返回。
<input class="textbox"
type="text"
name="firstname"
value="" autocomplete="off"
placeholder="Enter First Name">
是否可以使用占位符而不会返回那个烦人的下拉菜单?
我确信有足够多的带有 onblur、onfocus 和 onkeypress 的 js 代码可以模仿占位符而不会出现烦人的下拉菜单。但我希望有一种更简单的方法。
有什么建议么?
添加了 10/5/18 -- re: 下面关于浏览器的问题。今天情况变得更糟了。
IE 浏览器始终支持所有文本框的 autocomplete="off"。
但正如下面添加的评论所示,Chrome 变得不一致。名字、名字和姓氏以及电子邮件文本框会忽略 autocomplete="off"。但它为这两个中间名兑现了它。而且我看不出任何文本框的编码方式有什么不同。
这是我的表单的完整代码。[我将标签/输入对放入表格中以排列。(顺便说一句,似乎已经断开了它们的连接,因为单击标签不会将焦点转移到其输入上。但那是另一天的事了)]
<form id="formNo1" onsubmit="sendMessage(); return false;">
<table id="formNo1Table">
<tr>
**<!—This is a <select> element -->**
</tr>
<tr> **<!-- Chrom autocompletes / IE doesn’t -->**
<td>
<label class="label" for="firstname">First Name:</label>
</td>
<td>
<input class="textbox" type="text"
name="firstname" value=""
autocomplete="off" >
</td>
</tr>
<tr> **<!-- Both OK. No autocomplete-->**
<td>
<label class="label" for="middle1st">Middle Name - First:</label>
</td>
<td>
<input class="textbox" type="text"
name="middle1st" value=""
autocomplete="off">
</td>
</tr>
<tr>
**<!—This is a <select> element-->**
</tr>
<tr>
<td> **<!-- Both OK. No autocomplete-->**
<label class="label" for="middle2nd">Second Middle Name - Second</label>
</td>
<td>
<input class="textbox" type="text"
name="middle2nd" value=""
autocomplete="off">
</td>
</tr>
<tr>
<td> **<!-- Chrome autocompletes / IE doesn’t -->**
<label class="label" for="lastname">Last Name:</label>
</td>
<td>
<input class="textbox" type="text"
name="lastname" value=""
autocomplete="off">
</td>
</tr>
<tr>
<!—This is a <select> element
</tr>
<tr>
<td> **<!-- Chrome autocompletes / IE doesn’t -->**
<label class="label" for="lastname2">Second Last Name:</label>
</td>
<td>
<input class="textbox" type="text"
name="lastname2" value=""
autocomplete="off">
</td>
</tr>
<tr>
<!—This is a <select> element
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<!—This is a <select> element
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td> **<!-- Chrome autocompletes / IE doesn’t -->**
<label class="label" for="email">Email:</label>
</td>
<td> <!-- Chrom autocompletes / IE doesn’t -->
<input id="emailId"
class="textboxdim" type="text"
name="email" value=name@dom.ext
autocomplete="off">
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<!—This is a text area element
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:center;">
<input class="label" name="submit button"
type="submit" value="Submit">
</td>
</tr>
</table>
</form>
解决方案
只是 placeholder="" 加载的数据不会覆盖标签
推荐阅读
- sql - 如何显示匹配的 WHERE 条件?
- python - 如何在python中制作单独的if语句
- java - 单元测试 - 无法测试返回对象的相等性,测试什么?
- html - 如何根据里面的内容自动增加 Materialise Slider 的高度?
- go - 方法在运行时不可见
- c# - 将值从 selectlistitem 保存到 viewmodel
- powerpoint - Powerpoint Notes 部分格式化 VBA
- go - golang spimple crud web api,我是否需要为每个处理程序启动一个 goroutine
- reactjs - 使用扩展运算符将新项目连接到数组内的数组
- batch-file - 如何在 for loop Flashdrive 中设置 WMIC 以千兆字节为单位获取模型、文件系统和大小?