我有一个页面显示一些单选按钮和他们的标签关联。这样的事情(http://jsfiddle.net/DLV2F/702/) 在谷歌浏览器上,编辑文本没有问题,因为键盘不需要显示。
但在Android上,键盘仅显示输入,div显示为contenteditable
但不显示在标签上。
更具体一点:如果你用android选择div,你可以在键盘显示时修改它,但不能在标签中修改:
<div contenteditable id="div">DIV: This div will trigger the keyboard</div>
<label contenteditable>LABEL: This label won't</label>
有没有办法让键盘(如果可能的话,在iO上)出现?
我尝试在隐藏的输入上使用.select()
创建一些内容。但是如果没有显示输入(display: none
),键盘也不会出现......
编辑:最后,由于没有显示键盘的事件,并且因为我没有找到任何其他方式,这就是我解决问题的方法:
我设置了一个绝对pos和顶部的输入:-9999px(因为可见性:隐藏或显示:none不起作用)。
然后:
self.html.choicePanel.on('click','__my_label__',function(){
// We focus our dummy input
$( '#dummyInput' ).focus();
// We set the default text as it is in the label
$( '#dummyInput' ).val( $( "label[for='__THE_ID__']" ).text() );
// Remove other event on this input that could exist
$( '#dummyInput' ).off( 'keyup' );
$( '#dummyInput' ).on( 'keyup', function () {
// Set cool stuff in our label
$( "label[for='__THE_ID__']"']" ).text( $( this ).val() );
});
});
并且...承诺提交。