我想知道输入框是否有可能具有以下属性:
具体例子:
HTML:
<input type="text" name="magicalBox">
jQuery代码:
$('input[name=magicalBox]').keyup(function(event){
console.log("[1] Received " + String.fromCharCode(event.keyCode));
}
$('input[name=magicalBox]').blur(function(){
console.log("[2] No Longer Using Magical Box");
}
理想: 我在 magicalBox 中输入'a',但我在 magicalBox 中看不到'a'。但是,在我的控制台中,我将看到[1]消息。当我点击 magicalBox 时,我收到[2]消息。
我尝试过的事情:
任何建议都会受到高度赞赏(......如果可能的话......)
答案 0 :(得分:4)
答案很简单,更改:
<input type="text" name="magicalBox">
为:
<input type="text" name="magicalBox" maxlength="0">
通过将maxlength
设置为0,您说文本框中不允许使用任何字符,并且由于您的jQuery代码不关心文本框(仅关于按下的键),它不会影响输出。
如果这不起作用,请仔细检查您的jQuery代码。
您拥有的函数必须以});
结束,因为函数是从函数内部调用的。
答案 1 :(得分:1)
由于将maxlength
更改为0 culd实际上会破坏退格,我会考虑以下黑客攻击:
<input type="text" name="magicalBox" class="magicalBox">
使用这些样式:
.magicalBox {
color: #FFF; background-color: #FFF;
}
尽管如此,如果用户选择文本,它将出现。那不是什么神奇的......
如果你想认真对待这个,你可以改变SELECTION颜色,但这只能在Safari和Mozilla上运行(-moz-和可能的-webkit-,但我不确定最后一个):
.magicalBox::selection {
background: #FFF;
}
.magicalBox::-moz-selection {
background: #FFF;
}
显然,只是为了记录,简单的Hack就是在盒子上放置一个绝对定位的DIV
,宽度和高度相同,再加上background-color: #FFF;
。这需要一些工作来让用户输入在场上(当你点击DIV
时焦点,但它应该仍然很容易。但是,这是一个黑客,哪种类型的失败了调用它的目的魔法。
编辑:
还有一件事。
如果color
与background-color
我希望它有所帮助。这不是一个明确的解决方案,但我相信这是一个巨大的进步。 ^^