Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将信用卡信息从读卡器捕获到不可编辑的文本字段中_Javascript_Html_Credit Card_Credit Card Track Data - Fatal编程技术网

Javascript 将信用卡信息从读卡器捕获到不可编辑的文本字段中

Javascript 将信用卡信息从读卡器捕获到不可编辑的文本字段中,javascript,html,credit-card,credit-card-track-data,Javascript,Html,Credit Card,Credit Card Track Data,我是Javascript方面的新手。我的问题是: 我希望从读卡器中捕获信用卡信息,然后对其进行处理。到目前为止,我已经能够在HTML文本框字段中捕获虚拟信用卡数据——实际上这不是火箭科学,因为读卡器输入只是一组键盘事件,当一张卡被刷卡器刷卡时。问题在于,它仅在文本字段上有光标焦点时才起作用。如果我将textfield转换为只读框,它将不起作用——这正是我的要求。我应该能够屏蔽输入,显示两个*s,并且我应该能够使字段不可编辑。我希望这可以通过在文本框上放置一个透明的div来实现,但我不知道如何实现

我是Javascript方面的新手。我的问题是:

我希望从读卡器中捕获信用卡信息,然后对其进行处理。到目前为止,我已经能够在HTML文本框字段中捕获虚拟信用卡数据——实际上这不是火箭科学,因为读卡器输入只是一组键盘事件,当一张卡被刷卡器刷卡时。问题在于,它仅在文本字段上有
光标焦点时才起作用。如果我将textfield转换为只读框,它将不起作用——这正是我的要求。我应该能够屏蔽输入,显示两个
*
s,并且我应该能够使字段不可编辑。我希望这可以通过在文本框上放置一个透明的
div
来实现,但我不知道如何实现


我也愿意接受其他想法。

您可以使用javascript设置禁用文本字段的值,并通过
document.onkeydown=function(e){…}
获取击键事件数据。不需要隐藏div

我假设您的页面上有其他字段,这将使您很难知道何时捕获读卡器数据。您是否足够幸运,您的信用卡读卡器发送了一些唯一的第一个字符,这样您就知道键盘事件来自读卡器而不是用户击键?如果是这样,那么你就可以听那些特定的按键,这样你就不必担心设置焦点。否则,不妨考虑一个按钮,比如“读信用卡”,上面有一个“代码”>(“点击”)< /Cord>函数集,以读取下一个XX数字。

以下是一些调试代码,您可以使用这些代码查看阅读器是否发送了您可以侦听的唯一字符:

document.onkeydown = function(d) {
    console.log( d.which ? d.which : window.event.keyCode);
};

可以想象,在使用读卡器时,还有一些其他独特的事件信息。也许可以查看设备手册。

来扩展Zach所说的信用卡方面的内容

请查看有关您将遇到的卡轨格式的说明。您的读取器将输出数据,并在末尾使用回车符

一个选项是扫描所有击键,如果检测到开始序列
%B
则开始缓冲,然后在收到回车时将其存储在需要的位置。另外,如果有人碰巧输入了
%B
,则故障保护也会超时,因为读卡器的输入速度远远快于用户

%B4111111111111111^LASTNAME/FIRST I ^YYMM###..###?;4111111111111111=YYMM###..###?[CR]

听起来你想让文本字段既可编辑(通过读卡器的键盘事件),又是只读的?嗯……我知道这有点矛盾——但问题是:我需要这样做,因为用户不能编辑数据。此外,信用卡捕获只有在“关注”某个领域或任何地方时才有效。我的意思是,我试着打开一个普通的文本编辑器,信用卡阅读器能够将数据传输到文本编辑器中光标所在的位置。这就是我被卡住的地方——如何保持光标的焦点,同时使字段不可编辑?有什么javascript魔术可以帮助我吗?请注意,没有办法使提交的浏览器表单真正不可编辑,您只能防止意外编辑,而不是恶意编辑&在服务器端验证结果。我相信您是正确的。我只是想防止意外编辑。有了这么多的Firebug和篡改数据,网络世界中再也没有什么是安全的了:)