我想通过设置间隔更改占位符值,但是当我运行我的代码时,没有任何事情发生。 有谁可以帮助我。
<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>
答案 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 。
如果您想要其他事情发生,请更新您的帖子以表明预期的功能。