我编写了一个函数,当用户尝试提交无效的电子邮件地址时,该函数将 ID 为“mail_not_valid”的跨度的内部 HTML 设置为“这似乎不正确”。工作正常。另一个函数清除输入字段,由 onfocus 触发。第三个函数由 onblur 触发,并在用户未输入任何内容时将输入字段重置为其原始值。现在问题是:如果用户单击该字段(->清除),输入无效的电子邮件(->显示跨度),然后删除他的条目并离开表单,跨度仍然存在。
现在当我替换 document.getElementById("mail_not_valid").innerHTML = "";有了警报,警报就会出现。但更改innerHTML 不起作用。
编辑:我是个白痴,如果用户已经写了一些东西,它就无法工作:if (!(feld.value))
<input onblur="OnBlurCondition (this, 'subscribe to the e-mail newsletter')">
<script language="javascript">
function OnBlurCondition (feld, inhalt) {
if (!(feld.value)){
feld.value = inhalt;
if (document.getElementById("mail_not_valid").innerHTML == "that doesn't seem right."){
document.getElementById("mail_not_valid").innerHTML = "";
}
}
}
</script>
最佳答案
你有一个错字。应该是这样的:
if (document.getElementById("mail_not_valid").innerHTML == "that doesn't seem right."){
document.getElementById("mail_not_valid").innerHTML = "";
}
注意单个等号。
此外,请勿复制/粘贴代码。使用合适的编辑器/IDE。复制/粘贴是邪恶的! :)
关于javascript - onblur 触发的 javascript 函数会发出警报,但不会更改元素的innerHTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9879729/