首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery焦点输出==提交

问jquery焦点输出==提交
EN

Stack Overflow用户
提问于 2015-07-18 11:57:57
回答 1查看 960关注 0票数 2

如何判断焦点事件是由于enter按下= form submit而发生的,还是仅仅因为单击而引起的?进入控制台的事件数据类型为"focusout“,没有相关信息。

代码语言:javascript
复制
$(".clientrow[clientid="+clientid+"] td."+fieldname+"").bind("focusout", function(event){
    console.log(event);
    setTimeout(function() {
        if (!event.delegateTarget.contains(document.activeElement)) {
            $(".clientrow[clientid="+clientid+"] td."+fieldname+"").html( 
                    $(".clientrow[clientid="+clientid+"] td."+fieldname+" input[type=text]").val()
                );
            }
        }, 0);
    });
EN

回答 1

Stack Overflow用户

发布于 2015-07-18 12:26:34

编辑:正如Oriol在评论中指出的那样,在Mozilla中不起作用。如果您只寻找webkit浏览器,您可以尝试这种方法。但作为一般解决方案,请尝试在submit按钮上绑定事件,并连续设置标识元素的标志。根据元素,您可以检测到它是否是一个实际的模糊。

您可以在relatedTarget中查找event属性。

演示:http://jsfiddle.net/GCu2D/782/

联署材料:

代码语言:javascript
复制
$(document).ready(function () {
    $("input").on("blur", function (e) {
        console.log(e);
        if (e.relatedTarget) {
            console.log("Because of button");
        } else {
            console.log("Just a blur")
        }
    });
});

HTML:

代码语言:javascript
复制
<form>
    <input type="text" />
    <button type="button">Submit</button>
</form>

您必须将focusout替换为blur事件。当由于单击按钮而造成模糊时,relatedTarget属性将以button作为值,但在其他情况下为null。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31490917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档