javascript - 根据之前的模糊禁用焦点

标签 javascript events promise

假设我有 2 个简单的输入,例如:

I1: <input id='I1' type='text' value=''>
I2: <input id='I2' type='text' value=''>

和相应的JS,只有I1的值OK时I2才能获得焦点:

var ok = true;
$('#I1').on('blur', function(e) { ok = doSomeErrorChecking(); } );
$('#I2').on('focus', function(e) { if( !ok ) e.target.blur(); } );

只要“doSomeErrorChecking()”几乎立即返回 true/false,这就可以很好地工作。

我的问题是“doSomeErrorChecking()”必须调用一些 Ajax 东西并且不再返回 true/false,而是一个 Promise。

如何在这种情况下创建此“onFocus”功能?

最佳答案

您可以通过多种方式做到这一点,但一种简单的方法是在 I2 输入上添加禁用属性。当 Ajax 解析时,您可以从 I2

中删除此属性

有点像

I1: <input id='I1' type='text' value=''>
I2: <input id='I2' type='text' value='' disabled>

你的脚本看起来像

 $('#I1').on('blur', function(e) { 
     $.get("url", function(data, status){
    //work on data
     $("I2").prop("disabled", false)
    });
 } );

关于javascript - 根据之前的模糊禁用焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49951914/

相关文章:

javascript - 在 Angular 8 中创建过滤管道

javascript - 在 forEach 循环中等待 promise

javascript - pouchdb 向 fancytree promise

javascript - 在 angularJS 中使用模态窗口时在 Controller 之间共享对象数组

Javascript BBCode 解析器只识别第一个列表元素

javascript - 在 nodeJs socket.io on 方法在 webstorm 中未解决

javascript - 两个事件中的 jQuery 函数

javascript - fullcalendar 不加载事件

events - 使用 vaadin 捕获表中文本字段的值更改事件

javascript - promise 队列处理无序