类似HTML终端的文本输入
HTML terminal like text input
我正在尝试一个表单字段(只是一个普通的html文本输入框),它可以输入并更改值,但会使文本不可见。
我需要盒子是可见的,这样visibility: hidden;
或display: none;
就不会起作用。
我不能只是让文本与背景颜色相同,因为背景不是单一的颜色。我需要文本不可见,而输入的其余部分保持可见。
我试图达到的效果是,当你在终端中键入密码时,它接受输入,但没有显示任何反馈(但这不是针对密码的)。
我不能只是让文本与背景颜色相同,因为背景不是单一的颜色。
transparent
颜色怎么样?
这有帮助吗?
input[type="text"] {
color: transparent;
}
JSBin演示#1
更新:
我实现了@Shomz的想法,你可以简单地将光标保持在开头,或者将所有字符更改为*
。我已经使用jQuery
绑定事件:
jQuery版本:
var holder = [], exceptions = [13];
var hideChar = function(elm) {
elm.value = '';
// Or
// elm.value = elm.value.replace(/[^*]/, '*');
};
$('#console').keydown(function(e) {
if (e.which === 8) {
holder.pop();
}
}).keypress(function(e) {
if ($.inArray(e.which, exceptions) === -1) {
holder.push(String.fromCharCode(e.which));
}
var _this = this;
setTimeout(function() {
hideChar(_this);
}, 1);
}).keyup(function() {
$('#holder').val(holder.join(''));
});
HTML:
<input id="console" type="text" value="">
<input id="holder" type="hidden">
JSBin演示#2
纯JavaScript版本当然
说来话长,看看演示吧。
JSBin演示#3
如果您想一直将光标放在字段的开头(用户键入内容时不显示空格),可以使用JavaScript将输入字符发送到另一个类型设置为隐藏的输入字段中,同时清除原始输入字段。为此,您需要keyUp侦听器。
如果你想坚持使用HTML/CSS,恐怕唯一的方法就是将文本颜色设置为与背景颜色相同,但光标会移动,你会看到我上面提到的空格(请参阅@Hashem的答案)。
您是否尝试将输入字段的颜色设置为透明?
<input style="color:transparent;"></input>
相关文章:
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- Sails.js:同时发布文本输入和一个文件
- 来自文本输入null的html javascript变量
- 当没有文本输入聚焦时检测空格键按下
- JS中的按钮和文本输入
- JavaScript:在调用函数的文本输入上按enter键
- jQuery自动完成功能不适用于多个文本输入
- 使用JS从选择和文本输入中捕获值,并将输出返回到HTML
- 如何通过jQuery发送选定的元素和文本输入
- HTML如何根据javascript函数的返回值限制文本输入
- jquery插件或javascript方法自动调整文本输入(而非文本区域)(固定宽度)可变高度的大小
- 在jquery中获取文本输入val始终为空
- HTML文本输入大小
- 文本输入与文本区域
- 角度ui选择标记模糊时丢失文本输入
- 文本输入值中的JavaScript变量
- Angular指令中的最佳实践是将文本输入设置为英尺和英寸的格式
- 如何在不通过模型验证的情况下屏蔽文本输入中输入的字符
- 在文本输入区域中创建双向更新
- 不使用自定义CSS或HTML(使用框架方法)的角度材质文本输入或文本区域标签大小