I suppose you have type javascript: (hard to see colon) in the address bar
and verified there are no errors?
----- Original Message -----
From: "Troy Montour" <[EMAIL PROTECTED]>
To: "CF-Talk" <[EMAIL PROTECTED]>
Sent: Wednesday, December 19, 2001 9:31 AM
Subject: OT was wondering if any Javascript guru's could give me a hand with
this code
> Hello,
> sorry for the OT but only place I actually get some answers to my
> questions.
>
> I was wondering if somebody code point me in the right direction why
> this form Validation won't work in NS6 it works great in IE.
>
> in NS6 all it does is submit the form and no validation happens.
>
> I have tested the function with out the credit card info in it and works
> and I also tested the credit card info by it self and that works fine
> but with them combined it doesn't work.
>
> here is the code if you want to take a look hopefully someone can point
> me in the right direction.
>
> <SCRIPT LANGUAGE="JavaScript">
> <!-- Begin
> function checkFields() {
> missinginfo = "";
>
> FormVar = document.getElementById("JoinForm");
> var Cards = new makeArray(8);
> Cards[0] = new CardType("MasterCard", "51,52,53,54,55", "16");
> var MasterCard = Cards[0];
> Cards[1] = new CardType("VisaCard", "4", "13,16");
> var VisaCard = Cards[1];
> Cards[2] = new CardType("AmExCard", "34,37", "15");
> var AmExCard = Cards[2];
> Cards[3] = new CardType("DinersClubCard", "30,36,38", "14");
> var DinersClubCard = Cards[3];
> Cards[4] = new CardType("DiscoverCard", "6011", "16");
> var DiscoverCard = Cards[4];
> Cards[5] = new CardType("enRouteCard", "2014,2149", "15");
> var enRouteCard = Cards[5];
> Cards[6] = new CardType("JCBCard", "3088,3096,3112,3158,3337,3528",
> "16");
> var JCBCard = Cards[6];
> var LuhnCheckSum = Cards[7] = new CardType();
> var tmpyear;
> if ((FormVar.CardNumber.value.length == 0) ||
> (FormVar.CardNumber.value.Length < 16)) {
> missinginfo += "\n - Please enter a Card Number.";
> }
> if (FormVar.ExpYear.value.length == 4)
> tmpyear = FormVar.ExpYear.value;
> else {
> missinginfo += "\n - The Expiration Year is not valid.";
> }
> tmpmonth = FormVar.ExpMon.options[FormVar.ExpMon.selectedIndex].value;
> // The following line doesn't work in IE3, you need to change it
> // to something like "(new CardType())...".
> // if (!CardType().isExpiryDate(tmpyear, tmpmonth)) {
> if (!(new CardType()).isExpiryDate(tmpyear, tmpmonth)) {
> missinginfo += "\n - This card has already expired.";
> }
>
> card = FormVar.CardType.options[FormVar.CardType.selectedIndex].value;
> var retval = eval(card + ".checkCardNumber(\"" +
> FormVar.CardNumber.value +
> "\", " + tmpyear + ", " + tmpmonth + ");");
> cardname = "";
> if (retval)
> // comment this out if used on an order form
> /* missinginfo += "\n - This card number appears to be valid.";
> */;
> else {
> // The cardnumber has the valid luhn checksum, but we want to know which
> // cardtype it belongs to.
> for (var n = 0; n < Cards.size; n++) {
> if (Cards[n].checkCardNumber(JoinForm.CardNumber.value, tmpyear,
> tmpmonth)) {
> cardname = Cards[n].getCardType();
> break;
> }
> }
> if (cardname.length > 0) {
> missinginfo += "\n - This looks like a " + cardname + " number,
> not a " + card + " number.";
> }
> }
> /************************************************************************
> *\
> Object CardType([String cardtype, String rules, String len, int year,
> int month])
> cardtype : type of card, eg: MasterCard, Visa, etc.
> rules : rules of the cardnumber, eg: "4", "6011", "34,37".
> len : valid length of cardnumber, eg: "16,19", "13,16".
> year : year of expiry date.
> month : month of expiry date.
> eg:
> var VisaCard = new CardType("Visa", "4", "16");
> var AmExCard = new CardType("AmEx", "34,37", "15");
> \************************************************************************
> */
> function CardType() {
> var n;
> var argv = CardType.arguments;
> var argc = CardType.arguments.length;
>
> this.objname = "object CardType";
>
> var tmpcardtype = (argc > 0) ? argv[0] : "CardObject";
> var tmprules = (argc > 1) ? argv[1] : "0,1,2,3,4,5,6,7,8,9";
> var tmplen = (argc > 2) ? argv[2] : "13,14,15,16,19";
>
> this.setCardNumber = setCardNumber; // set CardNumber method.
> this.setCardType = setCardType; // setCardType method.
> this.setLen = setLen; // setLen method.
> this.setRules = setRules; // setRules method.
> this.setExpiryDate = setExpiryDate; // setExpiryDate method.
>
> this.setCardType(tmpcardtype);
> this.setLen(tmplen);
> this.setRules(tmprules);
> if (argc > 4)
> this.setExpiryDate(argv[3], argv[4]);
>
> this.checkCardNumber = checkCardNumber; // checkCardNumber method.
> this.getExpiryDate = getExpiryDate; // getExpiryDate method.
> this.getCardType = getCardType; // getCardType method.
> this.isCardNumber = isCardNumber; // isCardNumber method.
> this.isExpiryDate = isExpiryDate; // isExpiryDate method.
> this.luhnCheck = luhnCheck;// luhnCheck method.
> return this;
> }
> /************************************************************************
> *\
> boolean checkCardNumber([String cardnumber, int year, int month])
> return true if cardnumber pass the luhncheck and the expiry date is
> valid, else return false.
> \************************************************************************
> */
> function checkCardNumber() {
> var argv = checkCardNumber.arguments;
> var argc = checkCardNumber.arguments.length;
> var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
> var year = (argc > 1) ? argv[1] : this.year;
> var month = (argc > 2) ? argv[2] : this.month;
>
> this.setCardNumber(cardnumber);
> this.setExpiryDate(year, month);
>
> if (!this.isCardNumber())
> return false;
> if (!this.isExpiryDate())
> return false;
>
> return true;
> }
> /************************************************************************
> *\
> String getCardType()
> return the cardtype.
> \************************************************************************
> */
> function getCardType() {
> return this.cardtype;
> }
> /************************************************************************
> *\
> String getExpiryDate()
> return the expiry date.
> \************************************************************************
> */
> function getExpiryDate() {
> return this.month + "/" + this.year;
> }
> /************************************************************************
> *\
> boolean isCardNumber([String cardnumber])
> return true if cardnumber pass the luhncheck and the rules, else return
> false.
> \************************************************************************
> */
> function isCardNumber() {
> var argv = isCardNumber.arguments;
> var argc = isCardNumber.arguments.length;
> var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
> if (!this.luhnCheck())
> return false;
>
> for (var n = 0; n < this.len.size; n++)
> if (cardnumber.toString().length == this.len[n]) {
> for (var m = 0; m < this.rules.size; m++) {
> var headdigit = cardnumber.substring(0,
> this.rules[m].toString().length);
> if (headdigit == this.rules[m])
> return true;
> }
> return false;
> }
> return false;
> }
>
> /************************************************************************
> *\
> boolean isExpiryDate([int year, int month])
> return true if the date is a valid expiry date,
> else return false.
> \************************************************************************
> */
> function isExpiryDate() {
> var argv = isExpiryDate.arguments;
> var argc = isExpiryDate.arguments.length;
>
> year = argc > 0 ? argv[0] : this.year;
> month = argc > 1 ? argv[1] : this.month;
>
> if (!isNum(year+""))
> return false;
> if (!isNum(month+""))
> return false;
> today = new Date();
> expiry = new Date(year, month);
> if (today.getTime() > expiry.getTime())
> return false;
> else
> return true;
> }
>
> /************************************************************************
> *\
> boolean isNum(String argvalue)
> return true if argvalue contains only numeric characters,
> else return false.
> \************************************************************************
> */
> function isNum(argvalue) {
> argvalue = argvalue.toString();
>
> if (argvalue.length == 0)
> return false;
>
> for (var n = 0; n < argvalue.length; n++)
> if (argvalue.substring(n, n+1) < "0" || argvalue.substring(n, n+1) >
> "9")
> return false;
>
> return true;
> }
>
> /************************************************************************
> *\
> boolean luhnCheck([String CardNumber])
> return true if CardNumber pass the luhn check else return false.
> Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl
> \************************************************************************
> */
> function luhnCheck() {
> var argv = luhnCheck.arguments;
> var argc = luhnCheck.arguments.length;
>
> var CardNumber = argc > 0 ? argv[0] : this.cardnumber;
>
> if (! isNum(CardNumber)) {
> return false;
> }
>
> var no_digit = CardNumber.length;
> var oddoeven = no_digit & 1;
> var sum = 0;
>
> for (var count = 0; count < no_digit; count++) {
> var digit = parseInt(CardNumber.charAt(count));
> if (!((count & 1) ^ oddoeven)) {
> digit *= 2;
> if (digit > 9)
> digit -= 9;
> }
> sum += digit;
> }
> if (sum % 10 == 0)
> return true;
> else
> return false;
> }
>
> /************************************************************************
> *\
> ArrayObject makeArray(int size)
> return the array object in the size specified.
> \************************************************************************
> */
> function makeArray(size) {
> this.size = size;
> return this;
> }
>
> /************************************************************************
> *\
> CardType setCardNumber(cardnumber)
> return the CardType object.
> \************************************************************************
> */
> function setCardNumber(cardnumber) {
> this.cardnumber = cardnumber;
> return this;
> }
>
> /************************************************************************
> *\
> CardType setCardType(cardtype)
> return the CardType object.
> \************************************************************************
> */
> function setCardType(cardtype) {
> this.cardtype = cardtype;
> return this;
> }
>
> /************************************************************************
> *\
> CardType setExpiryDate(year, month)
> return the CardType object.
> \************************************************************************
> */
> function setExpiryDate(year, month) {
> this.year = year;
> this.month = month;
> return this;
> }
>
> /************************************************************************
> *\
> CardType setLen(len)
> return the CardType object.
> \************************************************************************
> */
> function setLen(len) {
> // Create the len array.
> if (len.length == 0 || len == null)
> len = "13,14,15,16,19";
>
> var tmplen = len;
> n = 1;
> while (tmplen.indexOf(",") != -1) {
> tmplen = tmplen.substring(tmplen.indexOf(",") + 1, tmplen.length);
> n++;
> }
> this.len = new makeArray(n);
> n = 0;
> while (len.indexOf(",") != -1) {
> var tmpstr = len.substring(0, len.indexOf(","));
> this.len[n] = tmpstr;
> len = len.substring(len.indexOf(",") + 1, len.length);
> n++;
> }
> this.len[n] = len;
> return this;
> }
>
> /************************************************************************
> *\
> CardType setRules()
> return the CardType object.
> \************************************************************************
> */
> function setRules(rules) {
> // Create the rules array.
> if (rules.length == 0 || rules == null)
> rules = "0,1,2,3,4,5,6,7,8,9";
>
> var tmprules = rules;
> n = 1;
> while (tmprules.indexOf(",") != -1) {
> tmprules = tmprules.substring(tmprules.indexOf(",") + 1,
> tmprules.length);
> n++;
> }
> this.rules = new makeArray(n);
> n = 0;
> while (rules.indexOf(",") != -1) {
> var tmpstr = rules.substring(0, rules.indexOf(","));
> this.rules[n] = tmpstr;
> rules = rules.substring(rules.indexOf(",") + 1, rules.length);
> n++;
> }
> this.rules[n] = rules;
> return this;
> }
>
>
> if (missinginfo != "") {
> missinginfo ="_____________________________\n" +
> "There has been a slight error:\n" +
> missinginfo + "\n_____________________________" +
> "\nPlease fill in the required fields and submit again!";
> alert(missinginfo);
> return false;
> }
> else return true;
> }
> // End -->
> </script>
>
> Troy Montour
> Vampires Inc
> [EMAIL PROTECTED]
> 612.867.6831
> 763.586.0552
> http://www.vampiresinc.com
>
>
______________________________________________________________________
Your ad could be here. Monies from ads go to support these lists and provide more
resources for the community. http://www.fusionauthority.com/ads.cfm
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Archives: http://www.mail-archive.com/[email protected]/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists