当用户按下回车键时,是不是有另一种方法可以在移动 Safari(iOS 上)上触发自动更正/自动完成?

Posted

技术标签:

【中文标题】当用户按下回车键时,是不是有另一种方法可以在移动 Safari(iOS 上)上触发自动更正/自动完成?【英文标题】:Is there an alternate way to trigger autocorrect/autocomplete on mobile Safari (on iOS) when the user presses enter?当用户按下回车键时,是否有另一种方法可以在移动 Safari(iOS 上)上触发自动更正/自动完成? 【发布时间】:2013-04-02 22:44:39 【问题描述】:

我知道当用户按下回车键时,浏览器通常会自行处理自动更正/大写等。但是我正在使用 contenteditable 属性并对“enter”进行一些特殊处理,这需要我在用户按下 enter 时使用 evt.preventDefault() 。由于我在侦听器中使用了 preventDefault() ,因此移动 Safari 会打开自动更正气泡,并且看起来很时髦/无法使用。是否有任何替代方式(可能使用 JS 触发事件)来消除气泡或触发正常行为而无需取出 preventDefault?

我不想摆脱自动更正功能,因为它对我的应用程序很重要。

【问题讨论】:

更一般地说,当 ios 在屏幕上显示建议的输入值自动更正时,有没有办法在自动更正后获取值以在 javascript 中使用? 您可以在 contenteditable div 中使用 onfocus onblur 等。 【参考方案1】:

应该有示例代码!但我想你说的是这样的:

$("#myForm").submit(function(event) 
    event.preventDefault();
    // Do other stuff
);

所以我很确定您可以手动触发 .blur-event,它可以触发自动完成功能:

$("#myForm #myInput").blur();

如果此答案有误,请提供示例代码 - *** 上并非所有人都是魔术师。

【讨论】:

我不知道原始海报的代码是什么样的,但如果我有一个带有event.preventDefault 调用的keypress 处理程序,那么在blur 之前添加一个blur 不会不要给我正确的文本:jsfiddle.net/LGWrJ【参考方案2】:

我会说它很容易设置焦点, 与之前与提交一起使用的答案相比,自动行为将继续自动更正..

$("#MyInput").focus(function(event)
    event.preventDefault();
);
$("#MyInput").blur() // do events you want on focus lost.. from input.. :)
);

我觉得这样就可以了..

【讨论】:

以上是关于当用户按下回车键时,是不是有另一种方法可以在移动 Safari(iOS 上)上触发自动更正/自动完成?的主要内容,如果未能解决你的问题,请参考以下文章

您如何更新priority_queue中的值,或者是不是有另一种方法可以在c ++中更新堆中的键

是否有另一种方法可以从 Spring MVC 中的 HttpServletRequest 对象获取用户的时区? [复制]

QT 没有 QTNetworkManager 是不是有另一种加载图像的方法?

SQL-'08:多个 Replace 语句是一种不好的做法/是不是有另一种方法来编写此查询?

如何在 Angular 8 中存储 jwt 令牌之类的数据?是不是有另一种使用本地存储或会话存储安全存储的方法?

数据块之外的 spark.read.format.load 是不是有另一种/类似的方法?