我想在web表单上有一个文本框,具有自己的加密和解密过程。用户输入这样的内容:"gwkki",意思是"hello"。
这里的加密密钥是键盘上正确字母旁边的每个字母:
h变成g
E变成w
L变成k
O变为I
"hello"变为"gwkki"
我想,只要用户在文本框中输入"gwkki",文本框就会显示"hello"。我可以写一个脚本来监控每个按下的键和替换每个字母使用这种编码方案吗?
这可以使用纯js或js和php来完成。
你可以在html:
中使用onChange事件处理程序跟踪对字段所做的更改 <input type="text" id="fieldName"
onchange="encode(this.id)">
,然后你可以写一个简单的函数:
<script type="text/javascript">
function upperCase(x)
{
var y=document.getElementById(x).value
//HERE YOU DECODE/ENDCODE the variable
//AND THEN DISPLAY IT WHERE EVER YOU WANT
document.getElementById(**THIS IS THE ID OF WHERE YOU WANNA DISPLAY THE VALUE**).value=y
}
</script>
这里有一个链接,可以帮助您编写编码/解码部分:http://www.w3schools.com/jsref/jsref_replace.asp
可以。当用户关注该输入时(您可以通过focus
和blur
事件观察这一点)。当用户关注该输入时,监听带有keypress
事件的按键,您可以获取单击的最后一个字母的值,并假设它不是删除键,对其进行正确编码。
jQuery的一些伪代码,用于处理更改最后一个字符。可能不完全正确:
var listenForKeyPress = function (e) {
if ($.inArray(e.keyCode, ARRAY_OF_CHARS_TO_ENCODE)) {
var el = $(this),
value = el.val();
// Set the value after we encode it
el.val(value.slice(0, value.length - 2) + encode(value[value.length - 1]);
}
};
$('#my-input').focus(function () {
$(this).bind('keypress', listenForKeyPress);
});
$('#my-input').blur(function () {
$(this).unbind('keypress', listenForKeyPress);
});