浏览器自动填充事件

时间:2012-02-11 16:21:15

标签: javascript browser cross-browser

我正在做一些我有登录表单的网站。我知道人们可以在他们的网络浏览器中保存他们的用户名和密码。

我需要显示/隐藏标签(<label></label>)。如果该字段为空则必须出现标签,如果该字段中有任何值,则标签必须隐藏, 但这不适用于浏览器自动完成,无论如何我可以跟踪这个吗?

我尝试过:

jQuery.change();

但这不起作用。

我可以做些什么而不是关闭自动完成功能吗?

3 个答案:

答案 0 :(得分:1)

此处的规范是在相关的输入元素上使用占位符属性:

<input type="text" placeholder="username">
当没有文本时,

username将显示在输入中,否则将隐藏。如果你正在使用它,那么你应该使用类似Modernizr的东西来检测支持并创建一个普通的文本标签。

答案 1 :(得分:0)

您必须手动触发更改事件:

$("#username")
.change(function () {
    // do stuff on change (check for default)
})
.trigger("change");
如果您只想切换默认文本(或使用Modernizr将占位符属性设置为 aviraldg 建议),请使用某个水印库。

答案 2 :(得分:-1)

这很简单 我将此用于我网站的文本字段。

此编码采用Javascript文本。

  1. 创建一个名称为<form>的{​​{1}} id = "comform"(您可以稍后更改;仅供参考)。
  2. 使用<input type = "text"name创建id = "Message"(稍后您可以更改此内容;仅供参考)。
  3. 使用<div>创建id = "ifsend"(您可以稍后更改;仅供参考)。
  4. 还创建一个变量来存储长度.var numbering(您可以稍后更改;仅供参考)。

    function counter() {
        var numbering;
        numbering = document.forms["comform"]["Message"].value.length;
        if (numbering == 0) {
            label();
        }
        if (numbering != 0) {
            document.getElementById('ifsend').innerHTML="";
        }
    }
    
    function label() {
        document.getElementById('ifsend').innerHTML="Your form value is empty";
    }