input blur test

safari blur bug test

by hui liu

HTML

<div id="test">
  click to append
</div>
<div id="inputblur">

</div>
<div id="log">

</div>

CSS

.test2{
  display:none;
}

JavaScript

var $inputblur = $('#inputblur');
$inputblur.on('blur', 'input', function(e) {
  window.log(e.target.value + '--blur');
}).on('select','input',function(e){
 	window.log(e.target.value + '--select');
}).on('focus','input',function(e){
 	window.log(e.target.value + '--focus');
});
window.log=function (str){
	$('#log').append(str + '</br>');
}

var str ='<div class="show">sdfasdg' +
  '<input type="text" value="test1" class="name" placeholder="输入分类名称并回车" >' +
  '<input class="test2" type="text" value="test2" class="name" placeholder="输入分类名称并回车" >' +
  '</div>'
$('#test').on('click', function() {
  $inputblur.append(str);
  var $input = $inputblur.find('input');
  $input.select().focus();
});
/*
测试结果:
safari:
test1--select
test1--focus
test2--select
test1--blur
test2--focus
test2--blur
test1--focus
test1--blur
test2--focus
test2--blur

chrome:
test1--select
test1--focus
test2--select
test1--focus
test1--select
test1--select
test2--select

测试发现,如果是在chrome浏览器上,不会触发第一个input的blur事件
但是如果是safari浏览器上,会触发第一个input的blur事件
*/