在onfocus事件中定义的onfocusout事件未成功调用

时间:2019-06-07 19:38:58

标签: javascript

当用户在文本区域之外单击时,我正在尝试更新字段。但是,我还想在将更新请求发送到服务器之前检查输入是否与原始输入不同。我正在尝试使用onfocus和onfocusout来完成此任务,如下所示:

function updateTitle(){
	var title = document.getElementById("info_title");
	var oldTitle = title.value;
	title.onfocusout = function(){
		var newTitle = title.value;
        if(newTitle != oldTitle){
            update();
        }
	}
}
<textarea id='info_title' onfocus='updateTitle()'>Title</textarea>

onfocus函数被调用,但是onfocusout函数从未成功调用。 onfocusout并不是问题,因为如果我在html中将“ onfocus =“更改为“ onfocusout =”,该函数也将成功调用。以这种方式在onfocus函数中定义onfocusout函数是否存在问题?为什么onfocusout部分没有运行?

1 个答案:

答案 0 :(得分:0)

您要查找的属性是.onblur而不是.onfocusout。

function updateTitle(){
    var title = document.getElementById("info_title");
    var oldTitle = title.value;
    title.onblur = function(){
        console.log('focus out');
        var newTitle = title.value;
        if(newTitle != oldTitle){
            update();
        }
    };
}
<textarea id='info_title' onfocus='updateTitle()'>Title</textarea>