我有一个div通过一些聪明的JavaScript充当文本框。是的,那闻起来,但它的供应商代码我无法改变:(
在iPad上,键盘不显示,因为它不是文本字段。有没有办法通过javascript强制打开键盘,或用告诉Safari的东西装饰HTML“是的,这真的是一个文本字段,只要相信我!”?
答案 0 :(得分:11)
根据我的经验,无法通过Javascript调出iPad或iPhone键盘。我最终使用了可能有用的解决方法。
我只是放置一个文本字段,将其不透明度设置为0,超过相关div。然后我在更改文本字段内容时更新div。
像这样(使用jQuery)$('textarea').bind('input', function(e){
var changedVal = $( e.currentTarget ).val();
$('div').html( changedVal );
});
// The input event is not a cross browser solution, use a combination of
// keyboard and mouse events to correctly respond to any changes in the textarea
如果您的供应商代码依赖键盘或鼠标事件监听器来实现它的魔力,您可以将所有事件类型代理到下面的div上。
像这样(使用jQuery)
$('textarea').bind('keyup keydown keypress mouseup mousedown click', function(e) {
e.currentTarget = $('div').get(0);
$('div').trigger(e);
});