famo.us输入表面更改/ onchange事件

时间:2014-08-29 02:53:58

标签: events onchange famo.us

使用最新的Chrome浏览器。

即使在为一个输入表面连接onchange事件之后也是脏的方式,因为没有扩展事件只需要inputurface.on(' change',function(){}):

MyInputSurface.prototype.deploy = function deploy(target){         this._superDeploy(目标);

    target.onchange = function() {
        console.log('test change');
    };
    target.onclick = function() {
        console.log('test click');
    };
};

直到我在浏览器窗口中单击后才会触发onchange事件。点击事件工作得很好。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

在输入失去焦点之前,onchange事件不会触发。这就是为什么你必须在回调运行之前再次点击浏览器窗口。

来自IE Dev Center

  

当提交内容时触发此事件,而不是在值更改时触发此事件。例如,在文本框中,在用户键入时不会触发此事件,而是在用户通过保留具有焦点的文本框提交更改时触发。此外,当控件也失去焦点时,此事件在onblur指定的代码之前执行。

如果您想在用户输入时输入输入值,则必须听取输入的input事件。

再次来自IE Dev Center

  

您可以使用oninput来检测textArea,input type = text或input type = password的内容何时更改。修改后立即发生此事件,与onchange事件不同,后者在元素失去焦点时发生。

当您的input回调触发时,只需像change一样获取目标值。