如何设置占位符值可变

时间:2015-06-05 14:34:20

标签: javascript html

我想通过设置间隔更改占位符值,但是当我运行我的代码时,没有任何事情发生。 有谁可以帮助我。

<form> <input type="text" placeholder="Enter E-mail" name="e-mail" id="email"/> </form>

<script>
    var holder = setInterval(function(){
        var emailplaceholder = document.getElementById('email').placeholder;
        if (emailplaceholder == 'Enter E-mail') {
            document.getElementById('email').placeholder = 'yourmail@example.com';
            document.getElementById('email').placeholder = emailplaceholder;
        };
     },400); 
</script>

2 个答案:

答案 0 :(得分:1)

这是一个有效的傻瓜:http://plnkr.co/edit/WFU7PGNYMcUKK180cCt7

可能你的脚本在dom创建之前运行或者根本不运行取决于你加载它时

<input type="email" placeholder="abc@gmail.com" id="email" />

(function(){
  var email = document.getElementById('email');

  var interval = setInterval(function(){
    email.placeholder = email.placeholder === 'abc@gmail.com' ? 
        'Enter email' : 'abc@gmail.com';
  }, 1000);

  function clearInterval(){
    clearInterval(interval);
  }
})();

答案 1 :(得分:0)

我不完全确定预期的行为是什么,但是您的代码会覆盖新的占位符值,原始占位符值存储在emailplaceholder变量中。

如果你想要'yourmail@example.com',只需删除setinterval函数中的最后一行代码。

e.g

<script>
    var holder = setInterval(function(){
        var emailplaceholder = document.getElementById('email').placeholder;
        if (emailplaceholder == 'Enter E-mail') {
            document.getElementById('email').placeholder = 'yourmail@example.com';
            // document.getElementById('email').placeholder = emailplaceholder;
        };
     },400); 
</script>

这将在400ms后将占位符设置为: yourmail@example.com

如果您想要其他事情发生,请更新您的帖子以表明预期的功能。