我有一个select
将在移动设备上显示的元素
<form>
<select id="selectMe" >
<optgroup label="Australia">
<option value="AustCars">Australia Cars Report</option>
<option value="AustBikes">Australia Bikes Report</option>
</optgroup>
<optgroup label="New Zealand">
<option value="NZCars">New Zealand Cars Report</option>
<option value="NZBikes">New Zealand Bikes Report</option>
</optgroup>
</select>
</form>
有两点需要注意:
- 我想
Australia Cars Report
在关闭时显示全名,以消除澳大利亚和新西兰之间的歧义。 - 我想在打开
Cars Report
时使用较短的版本select
,因为 iPhone 选择器的全名Australia Cars Report
太长(不是实际名称,而是呈现为Austr...rs Report
或类似),并且国家/地区隐含在optgroup
.
我的方法(基于Change a select list display value on selection description)是在控件获得焦点时修改每个项目的值,然后在失去焦点时取消修改。这就是我卡住的地方。
我这里有两个问题:
- 我可以获得焦点事件,但没有“失去焦点”事件。我不能使用 'changed' 事件,因为用户可能实际上没有更改选择。
- 我不知道如何
optgroup
从选项文本中获取要添加和删除的值。我的意思是我需要找到Australia Cars Report
它嵌套在下面Australia
,因此我可以从显示文本中删除该单词。
如果适用,我可以使用 javascript 或 jQuery 或其他工具。对我也忽略的简单方法的建议持开放态度。