- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在为学校做一些家庭作业,但我的开关有点卡住了!
在 checkcard();
中的 alert(card)
之前,我一直在收到回复我的问题是,没有一个案例会真正验证引用中的卡片类型,我不允许使用任何插件,如 jQuery 等。我会发布相关代码,很高兴收到你们的来信 :D 我已经用 #### 评论了这些行,以方便使用。此外,getcard
会按要求返回正确的卡片类型。
function getCard(){
var cardType = "unknown";
var cardTypeArray = document.getElementById("chooseCard").getElementsByTagName("input");
for(var i = 0; i < cardTypeArray.length; i++){
if (cardTypeArray[i].checked) {
cardType = cardTypeArray[i].value;
}
}
alert ("cardtype is" + cardType);
return cardType;
}
function checkCard(cardNumber){
var errMsg = "";
var card = getCard();
//var cardNumber = document.getElementById("cardNumber").value;
var regVisa = /^4[0-9]{12}(?:[0-9]{3})?$/;
var regMaster = /^5[1-5][0-9]{14}$/;
var regAmerica = /^3[47][0-9]{13}$/;
alert(card); // works till here #######
switch(card){
case "Visa":
if (parseInt(cardNumber.substring(0,1)!=4) {
errMsg = "card number is not visa \n";
}
break;
case "Mastercard":
if (cardNumber.substring(0,1) !=5) {
errMsg = "card number is not mastercard. \n";
}
break;
case "AmericanExpress":
if (cardNumber.substring(0,2) !=51) {
errMsg = "card number not american express, \n";
}
break;
}
return errMsg;
}
function validator(){
var errMsg = ""; /* stores the error message */
var result = true;
var visaCard = document.getElementById("visa").checked;
var masterCard = document.getElementById("mastercard").checked;
var americanExpress = document.getElementById("americanExpress").checked;
var cardName = document.getElementById("cardName").value;
//document.getElementById("cardName").setAttribute('maxlength',40);
var regexAlpha = /^[a-zA-Z ]+$/;
var cardNumber = document.getElementById("cardNumber").value;
var regexNum = /^[0-9]+$/;
var date = new Date();
var todayDateMonth = date.getMonth() + 1;
var todayDateYear = date.getFullYear();
var expMonth = document.getElementById("expMonth").value;
var expYear = document.getElementById("expYear").value;
var regVisa = /^4[0-9]{12}(?:[0-9]{3})?$/;
var regMaster = /^5[1-5][0-9]{14}$/;
var regAmerica = /^3[47][0-9]{13}$/;
if (todayDateMonth > expMonth || todayDateYear > expYear){
errMsg += "expiry date is wrong\n";
result = false;
}
if (!(visaCard || masterCard || americanExpress)){
errMsg += "please select visa, mastercard or american express\n";
result = false;
} /* assumes no errors */
if (cardNumber.length > 16 || cardNumber.length < 15 )
{
errMsg = errMsg + "your card number can only contain 15 to 16 digits \n";
result = false;
}else{
checkCard(cardNumber); // Starts here #######
}
if (cardName.length > 40 || cardName.length < 1 || !regexAlpha.test(cardName))
{
errMsg = errMsg + "your card name must only contain alpha characters \n";
result = false;
}
if (errMsg != "") {
alert(errMsg);
}
return result; //if false the information will not be sent to the server
}
function init() {
if(document.getElementById("regform")!==null){
var regForm = document.getElementById("regform");// get ref to the HTML element
regForm.onsubmit = validate;
prefill_form();
}
if(document.getElementById("bookform") !=null){
var bookForm = document.getElementById("bookform");
bookForm.onsubmit = validator; /* assigns functions to corresponding events */
var cancel = document.getElementById("cancelButton");
cancel.onclick = cancelBooking;
getBooking();
}
}
最佳答案
好的,所以问题是我没有返回错误消息或错误结果。我会重新发布与以前相同的代码,但我添加了一些内容以使其对那些感兴趣的人有用。感谢您的反馈!我将采纳几点意见。无论如何代码在下面,寻找###################。
function validator(){
var errMsg = "";
var result = true;
var visaCard = document.getElementById("visa").checked;
var masterCard = document.getElementById("mastercard").checked;
var americanExpress = document.getElementById("americanExpress").checked;
var cardName = document.getElementById("cardName").value;
var regexAlpha = /^[a-zA-Z ]+$/;
var cardNumber = document.getElementById("cardNumber").value;
var regexNum = /^[0-9]+$/;
var date = new Date();
var todayDateMonth = date.getMonth() + 1;
var todayDateYear = date.getFullYear();
var expDate = document.getElementById("expDate").value;
var dateFormat = /^[\d]{2}\/[\d]{4}$/;
if (!dateFormat.test(expDate)){
errMsg += "please select a valid date range\n";
result = false;
}else if (todayDateYear > expDate.substring(3,7)){
errMsg += "please select a valid expiry year\n";
result = false;
} else if (todayDateYear == expDate.substring(3,7) && todayDateMonth > expDate.substring(0,2)){
errMsg += "please select a valid expiry month\n";
result = false;
}
if (!(visaCard || masterCard || americanExpress)){
errMsg += "please select visa, mastercard or american express\n";
result = false;
}
if (cardNumber.length > 16 || cardNumber.length < 15 )
{
errMsg = errMsg + "your card number can only contain 15 to 16 digits \n";
result = false;
}else{
// code below is what i added ######################################
var tempMsg = checkCard(cardNumber);
if (tempMsg != "") {
errMsg = errMsg + tempMsg;
result = false;
};
}
if (cardName.length > 40 || cardName.length < 1 || !regexAlpha.test(cardName))
{
errMsg = errMsg + "your card name must only contain alpha characters \n";
result = false;
}
if (errMsg != "") {
alert(errMsg);
}
return result; //if false the information will not be sent to the server
function checkCard(cardNumber){
var errMsg = "";
var card = getCard();
var cvv = document.getElementById("CVV").value;
var regVisa = /^4[0-9]{12}(?:[0-9]{3})?$/;
var regMaster = /^5[1-5][0-9]{14}$/;
var regAmerica = /^3[47][0-9]{13}$/;
var cvvCheck3 =/^[0-9]{3}$/;
var cvvCheck4 =/^[0-9]{4}$/;
//do with if else
switch(card){
case "Visa":
if (!regVisa.test(cardNumber) || !cvvCheck3.test(cvv)) {
errMsg = "card number is not visa or cvv is wrrong \n";
}
break;
case "Mastercard":
if (!regMaster.test(cardNumber) || !cvvCheck3.test(cvv)) {
errMsg = "card number is not mastercard or cvv is wrong\n";
}
break;
case "AmericanExpress":
if (!regAmerica.test(cardNumber) || !cvvCheck4.test(cvv)) {
errMsg = "card number not american express or cvv is wrong, \n";
}
break;
default:
errMsg = "we cant process this card number \n";
}
return errMsg;
关于JavaScript 信用卡验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43555682/
由于数字也可以是小数,这让我认为 CC 数字应该是整数。这是有道理的,因为我认为任何信用卡都不会以 0 开头,而且它们都遵循相同的模式: 4444333322221111 所以我猜它们是一个整数,但我
有没有办法让 paypal 在后台处理我的信用卡,而无需用户离开我的网站或拥有 paypal 帐户? 或者此功能仅适用于“Pro”帐户? 谢谢。 最佳答案 这也适用于普通帐户。 直接支付用户体验 直接
有没有人有任何使用信用卡文件服务的经验,处理信用卡信息的存储以进行持续购买? 我们正在寻找一种解决方案,该解决方案可以通过 Web 服务或类似服务与自定义 ASP.NET 应用程序集成,但从我们这边移
我想知道如何在不使用 Apple 的应用内购买机制的情况下向用户询问信用卡详细信息并向他收费。 我的想法是将用户的信用卡发布到我的在线信用计费系统,并在网站上进行交易,在后台进行交易,然后将交易结果报
我想对 Guest Checkout 用户使用 Paypal 定期付款。也就是说,用户可以在没有任何 Paypal 帐户的情况下订阅我的计划。他也不需要创建 Paypal 帐户。只有他/她的信用卡 最
我在我的网站中集成了 NVP 方法,使用信用卡和 PayPal 进行定期付款。 完成付款后,新的用户资料将在商家的 PayPal 帐户中创建。但立即在 PayPal 网站中添加了第二行,显示配置文件的
当用户直接付款时(以客人身份购买 - 用信用卡付款),默认情况下,用户需要在转到信用卡号、csc 等之前填写信用卡帐单地址和电话号码。实际上我不需要真的想要账单地址,我可以直接将用户指向信用卡号,cs
通常,作为一个普通的应用程序,使用 active-merchant 和任何支付网关,我们提供一个基本的表格来填写属性: cc = CreditCard.new( :first_name => 'S
我使用的 iFrame 托管在另一个具有 SSL 证书的域上。在使用 iFrame 的页面上,我在 Google Chrome 的域旁边收到“不安全”消息,并在控制台日志中收到以下警告: This p
在我的 RoR 应用程序中存储我的客户的信用卡和账单信息的最佳做法是什么? 实际上,我正在使用 ruby 1.9.2、Rails 3.2.3,我正在考虑在 Heroku 中部署我的应用程序。 我们
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 11年前关闭。 Improve this qu
这是一个关于信用卡处理的问题。我们正在使用 AVS 并发现每笔因 AVS 失败的交易都会导致保留客户卡上的总金额。多次失败意味着多次保留。 发生这种情况是因为仅在 AUTH 完成后才检查 AVS。因此
假设我们有一个适用于手机的应用程序。制作此应用程序的原因之一是在特定网站的交付最后步骤中插入用户的一些关键信息,而这些信息并非来自应用程序创建者。它填写了地址、信用卡和真实姓名。在该网站购买商品后,应
我终于想出了如何使用这个 tutorial 实现 Stripes Monthly Billing 目前我的#new_subscription 表单和编辑表单的提交按钮创建信用卡数据并将其发送到 Str
我在 PayPal Pro/Express Omnipay Gateway 上测试沙盒信用卡时遇到问题。我正在使用在 Laravel 上运行的 October CMS,据我所知,它使用 Laravel
我希望用户能够通过 Windows Phone 应用程序购买门票,并且不想为此目的使用网络浏览器。票价可能不同。 是否可以通过电子钱包应用程序处理付款或需要与某些处理系统集成? 另请建议在 Windo
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 6 年前。
我是一名优秀的程序员,十分优秀!