从输入文本元素中删除缓存的下拉列表

时间:2012-09-26 06:30:02

标签: php javascript html

这种问题可能会被问过几次,但我的问题不同。

我有一个Text字段,其声明就像这样

<input type="text" autocomplete="off" name="email" id="email" value="Email" onfocus="if (this.value=='Email') this.value='';" onblur="if (this.value=='') this.value='Email';" onkeyup="javascript:chk_email(this.value);" onblur="javascript:chk_email(this.value);" />

当我输入一个单词时,所有类似缓存电子邮件的下拉列表将出现在文本框下方。

我尝试在autocomplete="off"标记中添加input,但它仍然存在。

我也写这个javascript但没有运气。

<script type="text/javascript">
    document.getElementById("email").reset();
</script>

有什么办法可以从我的表单中删除缓存电子邮件的下拉列表。我只想删除这个文本框的缓存而不是整个表单。

9 个答案:

答案 0 :(得分:4)

autocomplete="off"不是XHTML Transitional的有效标记,这是一种常见的DOCTYPE

<强>的jQuery

$("#email").attr("autocomplete","off");

<强>的Javascript

document.getElementById("email").setAttribute("autocomplete","off");

如果有这种帮助,请告诉我。

答案 1 :(得分:2)

如何使用<textarea>代替<input>。它将确保<textarea>不会显示下拉列表。见代码

<textarea  autocomplete="off" name="email" id="email"  onfocus="if (this.value=='Email') this.value='';" onblur="if (this.value=='') this.value='Email';" onkeyup="javascript:chk_email(this.value);" onblur="javascript:chk_email(this.value);" rows="1" >
value here</textarea>

答案 2 :(得分:1)

不要将autocomplete="off"添加到输入标记,而是尝试将其添加到标记

<form name="myform" method="post" autocomplete="off">

答案 3 :(得分:1)

  

而不是输入类型文本使用输入类型电子邮件

<input type="email" autocomplete="off" name="email" id="email" value="Email" onfocus="if (this.value=='Email') this.value='';" onblur="if (this.value=='') this.value='Email';" onkeyup="javascript:chk_email(this.value);" onblur="javascript:chk_email(this.value);" />

答案 4 :(得分:1)

您可以使用JavaScript更改相关输入元素的名称。

document.getElementById("email").name = Math.random();

每次都会为元素提供一个全新的名称,浏览器不会将其识别为电子邮件输入,因此不会显示缓存。

过去这对我有用。

答案 5 :(得分:1)

尝试添加以下变量:

// Older browsers
onCopy=”return false”
onPaste=”return false”
onDrag=”return false”
onDrop=”return false”

autocomplete="off" // HTML 5

答案 6 :(得分:1)

autcomplete = off选项不是标准选项,但您可以在大多数浏览器中使用它并且它应该可以工作,但不能作为输入属性,而是它所属的表单:

<form ... autocomplete="off">
    # your inputs
</form>

虽然这更像是客户问题,而不是应用程序问题。更多相关信息:

https://developer.mozilla.org/en-US/docs/How_to_Turn_Off_Form_Autocompletion

答案 7 :(得分:1)

将文档类型声明为

<!DOCTYPE html>

因为autocomplete=”off”不是XHTML Transitional的有效标记, 这是一个常见的DOCTYPE

答案 8 :(得分:0)

问题在于缓存,所以我从浏览器中清除了整个缓存并使用了我正在使用的html

<input type="text" autocomplete="off" name="email" id="email" value="Email" onfocus="if (this.value=='Email') this.value='';" onblur="if (this.value=='') this.value='Email';" onkeyup="javascript:chk_email(this.value);" onblur="javascript:chk_email(this.value);" />