selectize导致键盘出现在Android上

eme*_*his 2 javascript android angularjs selectize.js

在Android上,当触摸选择器时,将出现键盘输入。我怀疑这是因为生成的输入的类型为“文本”。

如何防止这种情况发生?如果用户从下拉列表中进行选择,则出现键盘是没有意义的。

我正在将selectize实现为Angular模块angular-selectize,但是我与开发人员进行了检查,该问题并非特定于angular包装器。

这是我的代码:

        <selectize  ng-model="filters.min_bedrooms" 
                    options="[
                            {title:'0', id:0},
                            {title:'1', id:1},
                            {title:'2', id:2},
                            ]">
        </selectize>
Run Code Online (Sandbox Code Playgroud)

生成以下标记:

<input type="text" autocomplete="off" tabindex="" style="width: 4px; opacity: 0; position: absolute; left: -10000px;">
Run Code Online (Sandbox Code Playgroud)

And*_*the 5

我遇到了同样的问题,我希望用户选择一个值而不输入任何新值,并且在iPad上点击下拉菜单时,键盘总是显示出来。我已经解决了这个问题:

$('#myDropDownId').selectize({
    create: true,
    sortField: 'date'
});
$(".selectize-input input").attr('readonly','readonly');
Run Code Online (Sandbox Code Playgroud)

基本上会发生什么,当您单击/点击下拉菜单时,输入将成为焦点,这就是显示键盘的地方。通过将readonly设置为false,输入将不再获得焦点。

我已经在Safari和Chrome的iPad Mini 2上进行了测试。


小智 5

这对我有用:

$(".selectize-input input").attr('readonly','readonly');
Run Code Online (Sandbox Code Playgroud)

还工作过:

$(".selectize-input input").prop('readonly','readonly');
Run Code Online (Sandbox Code Playgroud)