【问题标题】:onkeypress is working but onblur is notonkeypress 正在工作,但 onblur 没有
【发布时间】:2013-09-27 16:09:52
【问题描述】:

我正在使用以下输入字段。在这里,onkeypress 对于 tab 键和 enter 键工作正常,但是当我试图创建一个 onblur 警报表单时,它根本不起作用。我通过鼠标点击将光标移到另一个输入字段,但 onblur 根本没有触发。

<input autocomplete="off" type="text" name="username" id="username" maxlength="10" onkeypress="isDouble(document.getElementById('username'),event)" onblur="alert(1)" required/>

不确定我是否遗漏了什么。提前致谢。

【问题讨论】:

    标签: javascript validation input onblur


    【解决方案1】:

    这些都有效,因此不确定与您的其余代码和您提供的输入的差异在哪里。

    <input onfocus="console.log('focus')" onkeyup="console.log('keyup')" onblur="console.log('blurred')" type="text">
    

    【讨论】:

    • 遇到了问题。在使用 onblur 显示提示的输入字段之后有一个跨度。如果我评论它工作正常。但是现在,我陷入泥潭,如何解决? 请输入用户名
    • 你可以使用占位符属性吗? &lt;input placeholder="Please enter the username" ...
    【解决方案2】:
    <input autocomplete="off" type="text" name="username" id="username" maxlength="10" onkeypress="isDouble(document.getElementById('username'),event)" onblur="alert(1)" required/>
    

    这有效: (onblur 和 isDouble fire):

    function isDouble(arg) {
        alert('isDouble');
        return false; // remove this, and only isDouble() will fire.
    }
    

    【讨论】:

    • 猜猜我的意思是,如果你的函数正在接管并返回一个值,onblur 事件将被忽略。似乎是一个简单的假设......但是,这里没有人可以看到您的代码,所以我们都只是推测'
    • 我是 JS 新手。您是说如果函数返回值,onblur 将不起作用?让我试试看。谢谢。
    • 遇到了问题。在使用 onblur 显示提示的输入字段之后有一个跨度。如果我评论它工作正常。但是现在,我陷入泥潭,如何解决? 请输入用户名
    • 我认为需要查看更多代码。我不确定您如何与输入和跨度进行交互,至于为什么它甚至是问题的一部分。
    【解决方案3】:

    看看这个

    http://jsfiddle.net/78N9A/1/ 似乎可以正常工作

    <input autocomplete="off" type="text" name="username" id="username" maxlength="10" onkeypress="isDouble(document.getElementById('username'),event)" onblur="alert(1)" required/>
    

    【讨论】:

    • 遇到了问题。在使用 onblur 显示提示的输入字段之后有一个跨度。如果我评论它工作正常。但是现在,我陷入泥潭,如何解决? 请输入用户名
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-16
    • 1970-01-01
    • 2021-02-06
    相关资源
    最近更新 更多