试图验证信用卡表格(jQuery,ColdFusion)

时间:2013-09-04 15:51:50

标签: forms validation coldfusion credit-card

我有一个CC更新信息表单。仅显示卡号的最后4个,其余部分已加星标( * **** * 1234)。

当有人进入并且只需要在具有相同号码的卡上更新他们的到期日期时,我们也必须要求他们更新卡,因为已加星标的号码将提交给我们使用的API,并且将作为一个坏CC号返回。 API要求提交两组数字(卡号和过期日期)。 最简单的解决方案似乎是检查提交是否已加星标。

如何使用javascript / jQuery检查前12个号码是否已加星标( * ** * )?

此外,如果您知道更好的解决方案,请随时提出另一种处理方法。

我对jQuery验证非常熟悉,但从未见过可以做到这一点的事情。

提前致谢,

史蒂芬

3 个答案:

答案 0 :(得分:4)

如果要将数据存储在数据库中,那么当新的exp数据到达时,您不能只查找数据库中的CC编号并将其传递给该数据库吗?至于你的另一个问题,如果你的表格真的是通过星号只是寻找它们:

<cfif find(ccnum,"*")>
   you have stars so you look up the CC before passing it
<cfelseif isvalid("CC", CCNUM)>
  you have a valid cc num... so combine it with the other data and submit it.
<cfelse>
  you have something unexpected send an error back to the user
</cfif>

答案 1 :(得分:2)

不花哨,但你可以看看字符串。

客户端:

if(ccNum.substr(0,11) == '************'){
    // do whatever
}

ColdFusion Side:

if(left(ccNumber,12) == '************'){
    // do whatever
}

或基于标签的

<cfif left(ccNumber,12) eq '************'>
    <!--- do whatever --->
</cfif>

答案 2 :(得分:0)

我最初建议您在执行更新SQL /事务时忽略表单中的CC编号字段。 仅仅因为它是由用户提供的并不意味着你必须使用它。

但这有一个问题 - 它假设用户永远不会使用不同的信用卡更新信用卡信息 - 我建议“只是”假设这是一件坏事。

如果您在信用卡号中检查了“*”字符的提交值,那该怎么办?

如果有“*”,他们没有更改最初保存的CC编号,因此它是“安全(r)下注”,现在您可以忽略该编号。

如果没有“*” - 他们提供了CC号码 - 验证/重新保存。 即使它与以前的卡号相同 - 只是假设他们输入的数字完全不同并执行所需的CC编号验证,然后保存所有表格数据。

喜欢的东西;

<cfif form.ccNumber contains "*">
    <!--- disregard the CC number it is the same as the old one --->
    <!--- do other form field validation --->
    <!--- save all OTHER form fields, only / do NOT save the CC number --->
<cfelse>
    <!--- we have no "*" in the CC number - validate the card number --->
    <!--- jQuery has credit card validation in its validation plugin. --->
    <!--- do other form field validation --->
    <!--- save ALL form fields --->
</cfif>