2012-07-15 89 views
0

我有一个我已经写过的验证插件,并且我将data("defaultvalue")设置为document ready的值,但是当它涉及到自动完成表单时似乎存在一个小错误,他们打败了我。忽略自动填写完成的值

if($(this).val() != ""){ 
    $(this).data("defaultvalue", $(this).val()); 
} 

这是我使用存储的默认值,或“占位符文本”,以及后来的代码检查它:

if($(this).data("defaultvalue") && $(this).val() == $(this).data("defaultvalue")) $(this).val(""); 

任何想法跳过围绕自动完成?或者我应该咬一口,并在标记中设置默认值数据属性?

是的,我不使用placeholder属性的唯一原因是因为IE。谢谢微软。

+0

您可以给该元素一个唯一的名称并使用'autocomplete =“off”'来删除现代浏览器的任何浏览器自动完成。 – honyovk 2012-07-15 22:06:38

+0

@MBJ - 我不想干涉用户的偏好 - 如果他们不想自动完成,他们可能不会打开它......我想我只是要使用数据属性! – ahren 2012-07-15 22:24:37

回答

0

对于那些遇到同样问题的人,我最终将设置数据属性在我的标记。

<input value="Days" data-defaultvalue="Days" />

这感觉有点像双处理,但它是最好的跨浏览器解决方案,以避免自动完成脚本。