按钮内文本输入- HTML
Button inside text input - HTML
基本上我的网页上有一个文本框,我想添加一个"清除"按钮,就像在iOS中一样。我有一个正常的输入和一个img标签(带有重置按钮)。到目前为止,我已经使用了CSS相对定位,使它看起来像图像在文本框内。
我已经设置图像消失时,文本字段失去焦点(onfocus/onblur输入)与javascript。我有几个问题:
-
onclick代码永远不会为img标签执行,因为当输入失去焦点时它就会消失。(固定与onmousedown,但我想一个更优雅的解决方案)
-
我似乎无法重新聚焦文本输入点击后,使用document.getElementById('searchbox').focus();(我检查了id是否正确)
所以我想我不是这样做的最好的方式,我想知道我是否能以某种方式分组输入和重置按钮更好(他们都在同一个li现在)?当我在它,有没有一种方法来设置隐藏/消失与CSS?就像输入#searchbox:focus选择器一样,改变img#searchreset
的属性谢谢!
你不能使用javascript框架?如果可以的话,你可以使用jquery,例如,有很多插件可以做到这一点…
这里有一个教程:
http://viralpatel.net/blogs/2011/02/clearable-textbox-jquery.html我个人不喜欢这个"组件行为改变"手册,因为如果你把你的应用移植到一个移动设备上,或者你在一个默认包含这个功能的浏览器中使用它,这会看起来很糟糕。
我为我正在做的一个项目创建了类似的东西。主要区别在于,出于可用性的考虑,图像在任何时候都是可见的。
分组输入和按钮:
对于你的问题的第一部分,我采取的方法是使用父容器来容纳文本框和按钮。这将允许你采用苹果的搜索方法。他们使用了css精灵(教程)而不是svg来制作图像。如果你碰巧使用的浏览器允许你"检查元素",你可以去他们的网站看看他们是怎么做的。
基本上,我建议将背景图像放在包含元素上,这样文本框和按钮看起来就好像它们"在图像内部"。然后,一旦文本框获得焦点,你可以用CSS定位垂直移动背景图像,你就会得到你想要的外观。隐藏/消失:
单独使用CSS隐藏和消失是不可能的。但是,您可以创建两个类,一个用于隐藏,另一个用于显示按钮。然后在javascript中,一旦文本框获得焦点,你可以将按钮的可见性设置为"可见",在模糊时,你可以将其设置为"隐藏"。
JS推荐:
您应该考虑使用事件侦听器(教程)而不是HTML属性来检测您的点击或按压。这是一种更简洁、更优雅的方法。这就是为什么我会说使用jQuery这样的框架会让事情变得容易得多。它允许您设置事件侦听器,而不必担心遗留浏览器和各种标准实现。
一些代码会有帮助。我也很清楚。你想让你的文本区有一个背景图像?
- 如何编写HTML输入的JS内联
- 如何在HTML输入字段中添加不可删除的后缀
- HTML输入中不可更改的前导字符
- 如何使用jQueryAjax使用动态html输入texbox提交表单
- 清理HTML输入值
- 如何使用jQuery动态创建HTML输入
- 通过javascript以编程方式将文件插入HTML输入
- jQuery选择器不识别任何动态创建的HTML输入函数
- 将JavaScript变量传递到HTML输入框和(在PHP文件中使用)
- 如何调用两个函数是一种html输入类型
- HTML输入框未触发事件
- 移动HTML输入文本框在提交时隐藏软键盘
- 按键事件上的简单HTML输入不起作用
- 选择同一文件时未触发HTML输入文件选择事件
- 如何使文本、数字和日期html输入字段以一致的方式支持Ctrl+Z(撤消)
- 更改 html 输入字段中的占位符属性
- 如何在不使用任何 html 输入/搜索元素的情况下读取本地客户端文本文件
- 持久性 HTML 输入占位符
- 将 html 输入转换为正确的编码
- 如何隐藏和显示 html 输入文本和段落