2013-03-27 41 views
0

我有一个输入字段是这样的:的onblur和聚焦状态的输入字段不能编辑

<input class="" type="text" id="Name_11_1" name="Name" value="Your name:"> 

并希望将它变成这样:

<input class="" type="text" id="Name_11_1" name="Name" value="Your name:" onblur="this.value = this.value || this.defaultValue;" onfocus="this.value == this.defaultValue && (this.value = '');"Your name:"> 

的问题是,我不能直接编辑输入字段,必须使用外部JavaScript代码,但我的js级别是inder新手,所以每个帮助将不胜感激

回答

1

首先删除现有的事件处理程序,然后附上自己:

var obj = document.getElementById('Name_11_1'); 

obj.removeAttribute('onfocus'); 
obj.removeAttribute('onblur'); 

obj.addEventListener('blur', function() { 
    // your js code for blur event 
}); 
obj.addEventListener('focus', function() { 
    // your js code for focus event 
}); 
+0

它不起作用......请你多解释一下,好吗? – Newbie 2013-03-27 11:32:55

+0

我敢打赌,问题是您没有包含jQuery(?),所以我将我的答案更改为纯JS版本。 – Simon 2013-03-27 11:34:28

+0

对不起,我完全是新手......我要写什么//你的东西? – Newbie 2013-03-27 11:38:31

2

使用jQuery:

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
    <script> 
     $(function() { 
      $('#Name_11_1').blur(function() { 
       $(this).val(YOUR_EXPR); 
      }); 

      $('#Name_11_1').focus(function() { 
       $(this).val(YOUR_EXPR); 
      }); 
     }); 
    </script> 
+0

嗨,我写这篇文章,但它不工作: Newbie 2013-03-27 11:29:09

+0

这并没有变成$(this),$(this)只是为这个构造了一个jQuery包装器:P。 – Simon 2013-03-27 11:37:48

+0

正确的西蒙!抱歉。 – grigno 2013-03-27 11:57:56

1

如果浏览器理解上input标签placeholder属性,你可以使用:

<input id="foo" name="foo" placeholder="Your name"> 

你可以然后添加JavaScript以提供其他浏览器的回退:

if (!'placeholder' in document.createElement('input')) { 
    $('#foo').on('focus', function() { 
     // your code 
    }).on('blur', function() { 
     // your code 
    }); 
} 

UPDATE:忘记OP不能直接编辑0​​标签。在这种情况下,代码片段可以被修改,以这样的事:

var elem = $('#Name_11_1'), 
    defaultValue = 'Your name'; 

if ('placeholder' in document.createElement('input')) { 
    elem.attr('placeholder', defaultValue); 
} else { 
    elem.on('focus', function() { 
     // your code 
    }).on('blur', function() { 
     // your code 
    }); 
} 
+0

问题是OP写道他不能编辑输入,这可能意味着添加新的属性也是不可能的。 – Simon 2013-03-27 11:35:57

+0

是的,我知道占位符标记,但我无法编辑整个输入字段。有任何想法吗? – Newbie 2013-03-27 11:39:26

+0

糟糕 - 反映OP的更新答案无法编辑输入标签。 – 2013-03-27 11:44:51

相关问题