2012-09-26 44 views
1

这种问题可能会问几次,但我的问题是不同的。删除从输入文本元素中删除缓存

我有一个文本字段,它的声明是这样

<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);" /> 

当我输入一个字的文本框下方的下拉所有类似的缓存电子邮件的下跌即将到来。

我试着在input标记中加入autocomplete="off"标记仍然会来。

我也写这个JavaScript,但没有运气。

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

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

回答

4

autocomplete="off"不符合XHTML过渡有效的标记,它是一种常见的DOCTYPE

尝试

jQuery的

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

的Javascript

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

让我知道,如果这有助于与否。

+0

感谢您的回答。但它不是有用的。下降仍在继续。 –

+1

你可以发布你的代码,并告诉我你正在检查哪个浏览器? –

+0

我已经发布了足够的代码进行查看。我正在使用'Firefox'。 –

1

,而不是增加autocomplete="off"输入标签尝试添加形成标签

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

我写了这个'我只想删除这个文本框的缓存而不是整个表单。“看到这个问题。 –

0

的问题是具有高速缓存,所以我从浏览器清除整个缓存并使用我使用

<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);" /> 
1

而是输入型文本使用的输入类型的电子邮件将HTML

<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);" /> 
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> 
1

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

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

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

这在过去对我有效。

1

尝试添加下列变量:

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

autocomplete="off" // HTML 5 
1

的autcomplete =关闭选项不是标准,但你可以在大多数浏览器使用它,它应该工作,但不是作为一个输入属性,而形式是属于:

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

虽然这是更多的客户端问题,而不是应用程序之一。更多关于此这里:

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

+0

意识到文档中声明该属性在“名称”和“地址”参数情况下将被忽略的部分。另请阅读有关这些情况的解决方法。 – ChuckE

1

申报文件类型

<!DOCTYPE html> 

因为autocomplete=”off”不符合XHTML过渡, 有效的标记这是一种常见的DOCTYPE

+0

我认为这对你有所帮助 –