javascript - onblur 触发的 javascript 函数会发出警报,但不会更改元素的innerHTML

标签 javascript innerhtml onblur

我编写了一个函数,当用户尝试提交无效的电子邮件地址时,该函数将 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/

相关文章:

javascript - jQuery 模糊行为异常

javascript - 是否可以在浏览器中启动多个 js 调试器独立 session ?

javascript - 无法读取 InnerHTML 和 div id 的属性长度

javascript - SVG 如何在 innerHTML 中工作

javascript - onclick() 和 onblur() 从不在 IE8 中工作

jquery-validate - 使用 jQuery Autocomplete 和 Validator onBlur 计时问题

javascript - 如何将输入的文本分组到数组中并将每 20 个字符包装在一个 div 中

javascript - 将值/文本设置为下拉列表

javascript - Yammer JS SDK——CORS 问题

javascript - 用非替换 InnerHTML 替换 document.write