Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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 信用卡表单html值长度_Javascript_Jquery_Html_Forms_Credit Card - Fatal编程技术网

Javascript 信用卡表单html值长度

Javascript 信用卡表单html值长度,javascript,jquery,html,forms,credit-card,Javascript,Jquery,Html,Forms,Credit Card,我尝试了很多例子,但仍然找不到解决问题的好方法 如果我使用文本字段,那么我的应用程序将截取最后3位数字,使交易无法进行。问题是因为用户可能输入空格 比如说- 1234 1234 4564 1 当我在(type=“text”)上使用JQuery时,我会过滤字符,但在空格和裁剪方面仍然存在问题 你知道怎么做才能更好吗 我不太喜欢JS的键映射,因为我不知道用户想要如何使用这个空间 这是我的密码- <input class="required" id="field" type="number"

我尝试了很多例子,但仍然找不到解决问题的好方法

如果我使用文本字段,那么我的应用程序将截取最后3位数字,使交易无法进行。问题是因为用户可能输入
空格

比如说-

1234 1234 4564 1
当我在(type=“text”)上使用JQuery时,我会过滤字符,但在空格和裁剪方面仍然存在问题

你知道怎么做才能更好吗

我不太喜欢JS的键映射,因为我不知道用户想要如何使用这个空间

这是我的密码-

<input class="required" id="field" type="number" min="0000" max="9999" pattern="[0-9]{4}"  size="4" name="cvv"/>

<div class="FormInput">
                    <input name="var_creditcard_no" type="number" id="var_creditcard_no" onkeypress="return Check_mobile_number(event)" maxlength="16" value="<?php echo set_value('var_creditcard_no', '') ?>" placeholder="Credit Card Number *">
                    <?php echo form_error('var_creditcard_no', '<label class="error">', '</label>') ?>
                </div>
var txt='1234 1234 4564 1';
txt=txt.replace(/\s/g');
var valid=txt.match(/([0-9]{16})/g);
如果(有效){
//提交表格

}
您可以使用html5模式来实现这一点

美国运通:

信用卡

[0-9]{13,16}
食客俱乐部

^([30|36|38]{2})([0-9]{12})$
就这样用吧,

pattern="[0-9]{13,16}"
HTML代码

cc number
<br/>
<input class="required" id="field" type="text" maxlength="16" onkeypress="return isNumberKey(event)" name="cc" />max 16
<br/>cvv
<br/>
<input class="required" id="field" type="text" maxlength="4" onkeypress="return isNumberKey(event)" name="cvv" />max 4
cc编号

最多16
cvv
最大4
Js代码

/* isNumberKey
    Only allows NUMBERS to be keyed into a text field.
    @environment ALL
    @param evt - The specified EVENT that happens on the element.
    @return True if number, false otherwise.
 Source:
 http://www.kk-design.com/DevCookbook/JavascriptLibrary/isnumberkey.html
*/
function isNumberKey(evt) {
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    // Added to allow decimal, period, or delete
    if (charCode == 110 || charCode == 190 || charCode == 46) return true;
    if (charCode > 31 && (charCode < 48 || charCode > 57)) return false;
    return true;
} // isNumberKey
/*isNumberKey
仅允许在文本字段中键入数字。
@环境所有
@param evt-在元素上发生的指定事件。
@如果为数字,则返回True,否则返回false。
资料来源:
http://www.kk-design.com/DevCookbook/JavascriptLibrary/isnumberkey.html
*/
函数isNumberKey(evt){
var charCode=(evt.which)?evt.which:evt.keyCode;
//添加以允许小数、句点或删除
if(charCode==110 | | charCode==190 | | charCode==46)返回true;
if(charCode>31&(charCode<48 | | charCode>57))返回false;
返回true;
}//isNumberKey
我个人不喜欢它,但喜欢它的工作


但也许他们应该为信用卡添加新的html类型,我想所有人都会使用它

.on('input',func)
是您的解决方案。@然后,向支付网关发送数据的形式不是非法的。它讨论的验证问题是用户输入直接改变交易状态。存储信用卡信息是违法的,至少在我国是这样。为什么不直接使用支付网关?在发送数据之前,您将数据存储在服务器中,如果您的服务器遭到黑客攻击,您客户的信用卡信息被盗,您将坐牢(在世界上任何发达国家)。您是否愿意使用插件?如果是的话,也许可以检查一下这个[链接]@thenchanter PCI说存储pan last 4号码可以,你不能存储Cvv和exp日期以及个人信息。我只存储c卡号的最后4位数字,这样更容易重新查找和验证用户。此表单直接发送到支付网关,只有cc编号用于开具发票。但不用担心,这不是pci的问题,这是HTML5的错误,我在小提琴上试过,但pci部分做得不好,但是你提供的js没有解决问题,它将重写空间,但不会解决maxlenght=16后丢失的数字的问题。你唯一能做的就是返回false,不提交表格。如果长度<16,我想我可以写进去。同意:),但我会坚持返回,以完成工作。
cc number
<br/>
<input class="required" id="field" type="text" maxlength="16" onkeypress="return isNumberKey(event)" name="cc" />max 16
<br/>cvv
<br/>
<input class="required" id="field" type="text" maxlength="4" onkeypress="return isNumberKey(event)" name="cvv" />max 4
/* isNumberKey
    Only allows NUMBERS to be keyed into a text field.
    @environment ALL
    @param evt - The specified EVENT that happens on the element.
    @return True if number, false otherwise.
 Source:
 http://www.kk-design.com/DevCookbook/JavascriptLibrary/isnumberkey.html
*/
function isNumberKey(evt) {
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    // Added to allow decimal, period, or delete
    if (charCode == 110 || charCode == 190 || charCode == 46) return true;
    if (charCode > 31 && (charCode < 48 || charCode > 57)) return false;
    return true;
} // isNumberKey