Javascript 为什么这在IE中不起作用

Javascript 为什么这在IE中不起作用,javascript,mootools,Javascript,Mootools,我只想创建一个带有初始化值的输入。然后当聚焦时,它清除文本字段。但是,在模糊时,如果字段为空,则应返回其初始化值。它还可以用于密码字段。这是我想到的,它在ie中不起作用 错误消息 IE在交换输入时出现问题。键入属性 如果我没记错的话,在不同类型之间进行切换似乎是行不通的——我认为他们这样做是为了省去一些痛苦 例如,将文本字段更改为文件字段具有安全含义,字段.set(“value”,“c:\autoexec.bat”).set(“type”,“file”).getParent().send()

我只想创建一个带有初始化值的输入。然后当聚焦时,它清除文本字段。但是,在模糊时,如果字段为空,则应返回其初始化值。它还可以用于密码字段。这是我想到的,它在ie中不起作用

错误消息


IE在交换
输入时出现问题。键入
属性

如果我没记错的话,在不同类型之间进行切换似乎是行不通的——我认为他们这样做是为了省去一些痛苦

例如,将
文本
字段更改为
文件
字段具有安全含义,
字段.set(“value”,“c:\autoexec.bat”).set(“type”,“file”).getParent().send()

密码
更改为
文本
,同样是狡猾的(会以纯文本显示密码)。将
文本
更改为
复选框
/
收音机
有回流和行为问题

我可以继续,但IE团队只是认为最好不要让这些事件发生,结束它们,而不是处理每一个案例


你需要重新思考一下你的逻辑

我建议把你的例子放在上面,这样人们就可以看到实际的测试用例。
      $$('.default-text').each(function(item){

        item.store('default-value', item.get('value'));

       if(item.get('type') == 'password') {
            item.store('default-type', 'password');
            item.set('type', 'text');
            item.addEvent('keyup',function(el){
                if(item.get('value') != item.retrieve('default-value')) {
                    item.set('type', 'password');
                }
            });
        }            
        item.addEvent('focus',function(el){
            if(item.get('value') == item.retrieve('default-value')) {
                item.set('value','');
            }
        });
        item.addEvent('blur',function(){
            if(item.get('value') == '') {
                item.set('value', item.retrieve('default-value'));
                if(item.retrieve('default-type') == 'password') {
                    item.set('type', 'text' );
                }
            }
        });
    });