Javascript 在执行绑定到更改的函数时禁用输入

Javascript 在执行绑定到更改的函数时禁用输入,javascript,jquery,internet-explorer,internet-explorer-11,Javascript,Jquery,Internet Explorer,Internet Explorer 11,我有一个动态创建的大表单,希望在执行绑定到更改的函数时防止更改输入值。下面的代码在Safari中工作,但在IE11中禁用输入元素会导致焦点丢失,因此会取消未来的更改事件。因此,不会触发任何其他更改 还是有更好的方法来实现我正在寻找的功能 for (var i = 0; i < 4; i++) { $('ul').append("<input type='text' id='"+i+"' class='required require'>"); } $('body').on(

我有一个动态创建的大表单,希望在执行绑定到更改的函数时防止更改输入值。下面的代码在Safari中工作,但在IE11中禁用输入元素会导致焦点丢失,因此会取消未来的更改事件。因此,不会触发任何其他更改

还是有更好的方法来实现我正在寻找的功能

for (var i = 0; i < 4; i++) {
  $('ul').append("<input type='text' id='"+i+"' class='required require'>");
}
$('body').on('change','.required', function(evt) {
  ENABLED = $('input').not(':disabled');
  ENABLED.prop("disabled", true);
  $('#results').append($(this).attr('id')+' - '+evt.type+'<br/>');     
  if ($(this).val() != '') { $(this).removeClass('require'); }
  else { $(this).addClass('require'); }
  //more functions that can take some time to complete...
  ENABLED.prop("disabled", false);
});
for(变量i=0;i<4;i++){
$('ul')。附加(“”);
}
$('body').on('change','required',函数(evt){
ENABLED=$('input')。not(':disabled');
启用。道具(“禁用”,真);
$('#results').append($(this.attr('id')++'-'+evt.type++'
'); if($(this.val()!=''){$(this.removeClass('require');} else{$(this.addClass('require');} //更多可能需要一些时间才能完成的功能。。。 启用。道具(“禁用”,false); });