【发布时间】:2011-06-19 08:21:00
【问题描述】:
我注意到在戴尔或谷歌等网站上导航时,使用 iPhone 在他们的搜索文本框中键入时,键盘上会出现一个蓝色按钮“搜索”,而不是出现在任何正常表单上的标准“开始”按钮。
你应该怎么做才能显示搜索按钮?
【问题讨论】:
我注意到在戴尔或谷歌等网站上导航时,使用 iPhone 在他们的搜索文本框中键入时,键盘上会出现一个蓝色按钮“搜索”,而不是出现在任何正常表单上的标准“开始”按钮。
你应该怎么做才能显示搜索按钮?
【问题讨论】:
在 HTML5 标准中,在输入中添加 enterkeyhint 属性是更改虚拟键盘标签的正确方法
<input enterkeyhint="search" />
如果没有提供 enterkeyhint 属性,用户代理可能会使用来自输入模式、类型或模式属性的上下文信息来显示合适的输入键标签(或图标)。
【讨论】:
当使用@Anton Bielousov 建议的解决方案时,这也会改变 Android 设备的样式。为了解决这个问题,我不得不:
Android 样式:
input[type=search] { -webkit-appearance: none; }
/* clears the ‘X’ from Internet Explorer */
input[type=search]::-ms-clear { display: none; width : 0; height: 0; }
input[type=search]::-ms-reveal { display: none; width : 0; height: 0; }
/* clears the ‘X’ from Chrome */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration { display: none; }
<form action="" class="search-bar__form-form">
<input
class="search-bar__input"
name="search-bar"
type="search"
/>
</form>
【讨论】:
拥有 type="search" 通常你只需要让软件搜索键盘出现,但是在 iOS8 中,必须有一个带有 action 属性的包装表单。
所以下面的代码会有一个带有“返回”按钮的软键盘
<form>
<input type="search" />
</form>
但是这段代码应该有蓝色的“搜索”按钮
<form action=".">
<input type="search" />
</form>
【讨论】:
type=search 在 Chrome iOS 中对舍入搜索输入字段角有负面的 UX 副作用。讨厌浏览器开始为我做出 UI 设计决策。
[type="text"], [type="search"] { -webkit-appearance: none; },并且不要将功能与样式混合。
action 属性。所以按照今天的标准,肯定是一个更好的答案,但不一定是在 2011 年初提出问题时。
在 iOS 8 上,您可以通过以下方式之一启用键盘上的蓝色“搜索”按钮:
【讨论】:
我无法获得搜索按钮
<input type="search" />
但是,我确实让它与
一起出现<form>
<input name="search" />
</form>
【讨论】:
action 属性才能显示搜索按钮。
键盘由操作系统 (iOS) 处理,不能直接更改。所需的输入类型决定了要显示的键盘类型。
如果有问题的网站是 HTML5,那么@David 的回答是有效的。
【讨论】:
您可以通过以下方式影响此行为:
<input type="search" />
忽略 submit 按钮的文本是“水壶”,我只是想确定它不是影响 iOS 键盘文本的提交按钮...
这当然是向后兼容的,因为不理解type="search" 的浏览器将默认为type="text",这对于创建forward-planning html5 forms 很有用。
【讨论】:
id 必须包含搜索才能使其在Chrome 中运行,然后为了使其在iPhone 和iPad 上运行,我必须将input 放在<form> 中。
action 属性。我已经在 iOS 9.3.1 上测试过了