当如下渲染选择下拉列表中,iPhone的呈现空白。 我怎样才能解决这个问题?
<select size="3">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
从上面的例子http://www.w3schools.com/tags/att_select_size.asp 。 他们的样品是http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_select_size
在Firefox(和所有其他浏览器),它呈现为:
然而,在iPhone上,它呈现的空白。 这是实用性为游客不知道什么是在箱子里非常糟糕(在我们的应用程序,它是从多种可能性中选择它们的地址)。
我创建了一个的jsfiddle: http://jsfiddle.net/bqMEv/3/ iPhone的渲染如下; 注意,既是当上什么都没有:
- 大小大于1
- 并且高度在CSS中指定
- 并没有选择选项
卸下CSS高度显示,iPhone忽略大小属性。
貌似有做它的基础上,对堆栈溢出等主题内容的标准方式:
- Safari浏览器的移动多行<选择>又名GWT多行列表框
- jquery插件到<选择大小=“10”>转换为在Safari移动一个可用的列表(IOS)
但是,第二个议题的作者写道模仿这种行为插件: https://github.com/redhotsly/safarimobile-multiline-select
我简单的解决这个,使用jQuery:
$(document).ready(function(){
if(navigator.userAgent.match(/(iPhone|iPod|iPad)/i)) {
$('#my_select_box').prepend('<option value="" selected="selected" disabled="disabled">..Please select something</option>');
}
});
是这样的:
等待文件加载
如果用户使用的是iPhone访问该网站,iPod或iPad上执行脚本
在您选择列表的顶部添加选中并禁用选项,与文本“..Please选择一些东西”。
什么都不做在所有其他的浏览器,伟大工程:d
如果你需要显示的选项之一,使用以下命令: HTML选择属性
你在Firefox的网页:
看来,这里的人可能无法完全理解这个问题。 问题是,iOS的浏览器将不会呈现为不可选择的第一个字段,它通常是一个“请选择...”类型指示标签。 如果没有选择它,iOS设备上将显示为空白。 这是不可取的,因为有选择的用户进行,但字段显示为空白。
您也无法将其编程选择获得“请选择”显示,因为如果需要的领域,表单验证不再有效,因为所选择的浏览器认为第一场,即使它被标记为不可选择的。
“虫”是iOS的浏览器不会显示的第一个字段的标签,当它被设置为不可选择的。