我希望在Web表单上有一个带有自己的加密和解密过程的文本框。用户输入的内容如:“gwkki”,意思是“你好”。
此处的加密密钥是键盘上正确字母旁边的每个字母:
h转向g
e转向w
l转向k
o转向我
“你好”转向“gwkki”
我想,只要用户在文本框中键入“gwkki”,文本框就会显示“hello”。我可以编写一个脚本来监控按下的每个键并使用这种编码方案替换每个字母吗?
答案 0 :(得分:0)
这可以使用纯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
答案 1 :(得分:0)
你可以。当用户关注该输入时(您可以使用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);
});