【发布时间】:2013-03-25 17:45:50
【问题描述】:
我正在构建一个带有“清除值”按钮的表单字段 - 就像在 iOS 上一样,您可以点击一个小“X”图标来清除搜索字符串。
我的问题是:我使用字段的模糊事件对输入格式进行错误检查,而我对“X”图标的实现总是触发模糊事件。
我很困惑:如果我将图标作为背景图像放在输入字段中,我不再有点击目标,如果我在字段顶部使用标准 div 或 img,当然会模糊触发器。
我正在使用 jQuery,但这可能是一个通用的 CSS/javascript 问题。
例如这里接受的解决方案:Clear icon inside input text 这是原始意图的一个很好的例子,但这也会在您附加一个时触发模糊事件。
更新:
似乎最好的方法是使用错误检查功能 - 但我不喜欢它,所以我一直在寻找......结果我不知道 HTML5 中的 contenteditable 属性。
除了不使用表单字段作为表单数据的明显可访问性问题,以及忘记不能执行 HTML5 的老式浏览器之外,还有什么理由不使用 contenteditable div 标签重新创建输入字段?
【问题讨论】:
-
blur 触发是因为您在单击按钮时移除焦点,您期望什么?
-
如果你使用背景图片,你仍然有一个点击目标......它使用起来并不理想。您必须找出单击输入的位置,以及是否在特定边界内(“清除”按钮所在的位置),然后清除文本。否则,这是一次正常的点击
标签: javascript jquery css