Как я могу узнать, произошло ли событие фокуса из-за ввода нажмите = отправить форму или просто из-за щелчка? Данные события, которое идет на консоль типа «focusout» и не имеет никакой относящейся к делу информацииjquery focusout == submit
$(".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);
});
Невозможно сказать __why__ событие фокуса (официально известное как событие размытия). Возможно, вы сможете прослушать предыдущие события, такие как «щелчок» или «отправить», зацепить свою функцию обратного вызова в этой точке и отменить последующее событие «размытия». Может быть. – kieranpotts
Вы пробовали что-то подобное, как директива 'ng-blur' –
@KieranPotts [' blur'] (http://www.w3.org/TR/DOM-Level-3-Events/#event-type-blur) и ['focusout'] (http://www.w3.org/TR/DOM-Level-3-Events/#event-type-focusout) - это разные события, как стандартные. – Oriol