Dojo Mobile表单提交已停止工作

时间:2016-11-15 23:02:47

标签: javascript google-chrome dojo dijit.form dojox.mobile

使用DojoX Mobile从submit收听dijit/Form/form事件已停止在Android上使用Chrome。这曾经有用,但现在不再有了:

<form data-dojo-type="dijit/form/Form">
    <input data-dojo-type="dojox/mobile/TextBox"
        name="user" placeholder="Email"> <br />
    <input data-dojo-type="dojox/mobile/TextBox" placeholder="Password"
        name="pass" type="password"> <br />
    <button data-dojo-type="dojox/mobile/Button" type="submit">Log In</button>
</form>

on(registry.byId('loginForm'), 'submit', function (evt) {
    evt.preventDefault();
    if (!this.isValid()) { return; }
    alert('valid submit fired');
});

在进行了一些挖掘之后,我发现它开始在Chrome 53中发生。使用开发工具和Chrome 52中的设备模拟器测试this fiddle可以正常工作,但在控制台中发出此警告:

  

从JavaScript生成的DOM事件触发了浏览器内的默认操作。此行为是非标准行为,将于2016年9月左右在M53中删除。有关详细信息,请参阅https://www.chromestatus.com/features/5718803933560832

我的猜测是,它来自DojoX中的一个合成的,不受信任的事件(Chrome页面也指向该方向),因为普通<input type="submit" value="Log In">成功触发了该事件,但添加了{{1}导致它失败。

这是一个未在Dojo中解决的错误(我已经使用1.10.4和1.11.2进行了测试)?我是否只需要使用变通方法并拥有两个单独的侦听器 - 一个用于dojox/mobile/button(即用户点击输入),另一个用于按钮submit

0 个答案:

没有答案