0

I have a payment form and when someone selects the 'paypal' option, I want it to have the credit card details. I have taken some code from an existing from in which this function works and tried to adjust it for my edited form - but I can't seem to get it to work...

If someone could point out where I'm going wrong it would be gratingly appreciated! (I'm still very new to scripting)

The script i need help with is down the bottom of the form.

What I need it to do:

When you click on and off the 'paypal' checkbox, I want all the rows with the class of "hideCC" to toggle on and off.

<div class="checkoutForm-bg">
<div class="checkoutForm-wrapper">
<div class="shop-checkout shop-form">
<h1>Check Out</h1>
<script type="text/javascript" src="/CatalystScripts/ValidationFunctions.js?vs=b2206.r502081-phase1"></script>
<form name="catwebformform2140" method="post" onsubmit="return checkWholeForm2140(this)" enctype="multipart/form-data" action="https://sklzaustralia.worldsecuresystems.com/FormProcessv2.aspx?WebFormID=10850&amp;OID={module_oid}&amp;OTYPE={module_otype}&amp;EID={module_eid}&amp;CID={module_cid}&amp;CC={module_urlcountrycode}&amp;Referrer={module_siteurl,true,true}">
    <span class="req">*</span>  Required
    <table class="webform" cellspacing="0" cellpadding="2" border="0">
        <tbody>
            <tr>
                <td><label for="Title">Title</label><br />
                <select name="Title" id="Title" class="cat_dropdown_smaller">
                <option value="1328222">DR</option>
                <option value="1328221">MISS</option>
                <option value="1328218" selected="selected">MR</option>
                <option value="1328219">MRS</option>
                <option value="1328220">MS</option>
                </select></td>
            </tr>
            <tr>
                <td><label for="FirstName">First Name <span class="req">*</span></label><br />
                <input name="FirstName" id="FirstName" class="cat_textbox" maxlength="255" type="text" /> </td>
            </tr>
            <tr>
                <td><label for="LastName">Last Name <span class="req">*</span></label><br />
                <input name="LastName" id="LastName" class="cat_textbox" maxlength="255" type="text" /> </td>
            </tr>
            <tr>
                <td><label for="EmailAddress">Email Address <span class="req">*</span></label><br />
                <input name="EmailAddress" id="EmailAddress" class="cat_textbox" maxlength="255" type="text" /> </td>
            </tr>
            <tr>
                <td><label for="CAT_Custom_20097767">Phone number <span class="req">*</span></label><br />
                <input maxlength="255" name="CAT_Custom_20097767" id="CAT_Custom_20097767" class="cat_textbox" type="text" /></td>
            </tr>
            <tr>
                <td><label for="ShippingAddress">Shipping Address <span class="req">*</span></label><br />
                <input name="ShippingAddress" id="ShippingAddress" class="cat_textbox" maxlength="500" type="text" /></td>
            </tr>
            <tr>
                <td><label for="ShippingCity">City <span class="req">*</span></label><br />
                <input name="ShippingCity" id="ShippingCity" class="cat_textbox" maxlength="255" type="text" /></td>
            </tr>
            <tr>
                <td><label for="ShippingState">State <span class="req">*</span></label><br />
                <input name="ShippingState" id="ShippingState" class="cat_textbox" maxlength="255" type="text" /></td>
            </tr>
            <tr>
                <td><label for="ShippingZip">Zipcode/Postcode <span class="req">*</span></label><br />
                <input name="ShippingZip" id="ShippingZip" class="cat_textbox" maxlength="255" type="text" /></td>
            </tr>
            <tr>
                <td><label for="ShippingCountry">Country <span class="req">*</span></label><br />
                <select name="ShippingCountry" id="ShippingCountry" class="cat_dropdown">
                <option value=" ">-- Select Country --</option>
                <option value="AU" selected="selected">AUSTRALIA</option>
                </select></td>
            </tr>
            <tr>
                <td><label for="Company">Company</label><br />
                <input name="Company" id="Company" class="cat_textbox" maxlength="255" type="text" /></td>
            </tr>
            <tr>
                <td><label for="ShippingInstructions">Shipping Instructions</label><br />
                <textarea name="ShippingInstructions" id="ShippingInstructions" cols="10" rows="4" class="cat_listbox"></textarea></td>
            </tr>
            <tr>
                <td><label for="BillingAddress">Billing Address <span class="req">*</span></label><br />
                <input name="BillingAddress" id="BillingAddress" class="cat_textbox" maxlength="500" type="text" /></td>
            </tr>
            <tr>
                <td><label for="BillingCity">City <span class="req">*</span></label><br />
                <input name="BillingCity" id="BillingCity" class="cat_textbox" maxlength="255" type="text" /></td>
            </tr>
            <tr>
                <td><label for="BillingState">State <span class="req">*</span></label><br />
                <input name="BillingState" id="BillingState" class="cat_textbox" maxlength="255" type="text" /></td>
            </tr>
            <tr>
                <td><label for="BillingZip">Zipcode/Postcode <span class="req">*</span></label><br />
                <input name="BillingZip" id="BillingZip" class="cat_textbox" maxlength="255" type="text" /></td>
            </tr>
            <tr>
                <td><label for="BillingCountry">Country <span class="req">*</span></label><br />
                <select name="BillingCountry" id="BillingCountry" class="cat_dropdown">
                <option value=" ">-- Select Country --</option>
                <option value="AU" selected="selected">AUSTRALIA</option>
                </select></td>
            </tr>
            <tr>
                <td><label>Payment Method <span class="req">*</span></label><br />
                <input checked="checked" name="PaymentMethodType" id="PaymentMethodType_1" value="1" type="radio" />Credit Card<br />
                <input name="PaymentMethodType" id="PaymentMethodType_5" value="5" type="radio" />PayPal<br />
                <input name="PaymentMethodType" id="PaymentMethodType_9" value="9" type="radio" />Gift Voucher</td>
            </tr>
            <tr class="hideCC">
                <td><label for="CardName">Name on Card <span class="req">*</span></label><br />
                <input name="CardName" id="CardName" class="cat_textbox" autocomplete="off" type="text" /></td>
            </tr>
            <tr class="hideCC">
                <td><label for="CardNumber">Card Number <span class="req">*</span></label><br />
                <input name="CardNumber" id="CardNumber" class="cat_textbox" autocomplete="off" type="text" /></td>
            </tr>
            <tr class="hideCC">
                <td><label>Card Expiry <span class="req">*</span></label><br />
                <select name="CardExpiryMonth" id="CardExpiryMonth" class="cat_dropdown_smaller">
                <option value="01">01</option>
                <option value="02">02</option>
                <option value="03">03</option>
                <option value="04">04</option>
                <option value="05">05</option>
                <option value="06">06</option>
                <option value="07">07</option>
                <option value="08">08</option>
                <option value="09">09</option>
                <option value="10">10</option>
                <option value="11">11</option>
                <option value="12">12</option>
                </select><select name="CardExpiryYear" id="CardExpiryYear" class="cat_dropdown_smaller">
                <option value="2015">2015</option>
                <option value="2016">2016</option>
                <option value="2017">2017</option>
                <option value="2018">2018</option>
                <option value="2019">2019</option>
                <option value="2020">2020</option>
                <option value="2021">2021</option>
                <option value="2022">2022</option>
                <option value="2023">2023</option>
                </select></td>
            </tr>
            <tr class="hideCC">
                <td><label for="CardType">Card Type <span class="req">*</span></label><br />
                <select name="CardType" id="CardType" class="cat_dropdown">
                <option value="1">Visa</option>
                <option value="2">Mastercard</option>
                <option value="4">American Express</option>
                </select></td>
            </tr>
            <tr class="hideCC">
                <td><label for="CardCCV">CCV Number <span class="req">*</span></label><br />
                <input name="CardCCV" id="CardCCV" class="cat_textbox" autocomplete="off" type="text" /></td>
            </tr>
            <tr>
                <td><label for="Amount">Amount <span class="req">*</span> <span id="constraint-300-label"></span></label><br />
                <input name="Amount" id="Amount" class="cat_textbox" type="text" /></td>
            </tr>
            <tr>
                <td><input class="cat_button" value="Submit" id="catwebformbutton" type="submit" /></td>
            </tr>
        </tbody>
    </table>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
    <script type="text/javascript">
//<![CDATA[
var submitcount2140 = 0;function checkWholeForm2140(theForm){var why = "";if (theForm.FirstName) why += isEmpty(theForm.FirstName.value, "First Name"); if (theForm.LastName) why += isEmpty(theForm.LastName.value, "Last Name"); if (theForm.EmailAddress) why += checkEmail(theForm.EmailAddress.value); if (theForm.ShippingAddress) why += isEmpty(theForm.ShippingAddress.value, "Shipping Address"); if (theForm.ShippingCity) why += isEmpty(theForm.ShippingCity.value, "Shipping City"); if (theForm.ShippingState) why += isEmpty(theForm.ShippingState.value, "Shipping State"); if (theForm.ShippingZip) why += isEmpty(theForm.ShippingZip.value, "Shipping Zipcode"); if (theForm.ShippingCountry) why += checkDropdown(theForm.ShippingCountry.value, "Shipping Country"); if (theForm.BillingAddress) why += isEmpty(theForm.BillingAddress.value, "Billing Address"); if (theForm.BillingCity) why += isEmpty(theForm.BillingCity.value, "Billing City"); if (theForm.BillingState) why += isEmpty(theForm.BillingState.value, "Billing State"); if (theForm.BillingZip) why += isEmpty(theForm.BillingZip.value, ""); if (theForm.BillingCountry) why += checkDropdown(theForm.BillingCountry.value, "Billing Country"); if (theForm.PaymentMethodType) why += checkSelected(theForm.PaymentMethodType, "Payment Method");if (!theForm.PaymentMethodType || getRadioSelected(theForm.PaymentMethodType) == 1) { if (theForm.CardName) why += isEmpty(theForm.CardName.value, "Name on Card"); if (theForm.CardNumber) why += isNumeric(theForm.CardNumber.value, "Card Number"); if (theForm.Amount) why += isCurrency(theForm.Amount.value, "Amount"); } if (theForm.CAT_Custom_20097767) why += isCurrency(theForm.CAT_Custom_20097767.value, "Phone number");if(why != ""){alert(why);return false;}if(submitcount2140 == 0){submitcount2140++;theForm.submit();return false;}else{alert("Form submission is in progress.");return false;}}
  // Credit Card info is not required if paying by PayPal, Hosted Credit Card, COD etc
   function ShowCCFields(val) {       
    if (!document.getElementsByClassName("hideCC"))
     return;    
    if (val != 1)
     document.getElementsByClassName("hideCC").style.display = "none";    
    else
     document.getElementsByClassName("hideCC").style.display = "inline";
    }
//]]>
</script>
</form>
</div>
</div>
</div>
DaveP19
  • 167
  • 3
  • 16
  • 1
    Please read the "*[mcve]*" guidelines, and then [edit] your question to reduce the code to the absolute minimum required to demonstrate your problem. In this case I suspect that would be the relevant radio-inputs and the elements you want to show or hide (as well as the JavaScript). As written I suspect that your question may well be answered in this other question: http://stackoverflow.com/questions/10693845/what-do-queryselectorall-getelementsbyclassname-and-other-getelementsby-method, but I'm not sure enough yet to close as a dupe. – David Thomas Dec 07 '16 at 22:53
  • You have to be careful, getElementsByClassName() returns an array and you're trying to set stuff as if it was an object. Also try to store elements in variables so that you're sure you're using the same objects. – James Dec 07 '16 at 22:53
  • Minimal content - noted. Sorry. – DaveP19 Dec 08 '16 at 00:51

1 Answers1

1

Since you are including jQuery why not try this:

$(document).ready(function() {

                $('[name="PaymentMethodType"]').change(function () {                        
                    if ($(this).val() == 1) {
                        $('.hideCC').show();
                    } else {
                        $('.hideCC').hide();
                    }

                });
            });

<div class="checkoutForm-bg">
<div class="checkoutForm-wrapper">
<div class="shop-checkout shop-form">
<h1>Check Out</h1>
<script type="text/javascript" src="/CatalystScripts/ValidationFunctions.js?vs=b2206.r502081-phase1"></script>
<form name="catwebformform2140" method="post" onsubmit="return checkWholeForm2140(this)" enctype="multipart/form-data" action="https://sklzaustralia.worldsecuresystems.com/FormProcessv2.aspx?WebFormID=10850&amp;OID={module_oid}&amp;OTYPE={module_otype}&amp;EID={module_eid}&amp;CID={module_cid}&amp;CC={module_urlcountrycode}&amp;Referrer={module_siteurl,true,true}">
    <span class="req">*</span>  Required
    <table class="webform" cellspacing="0" cellpadding="2" border="0">
        <tbody>
            <tr>
                <td><label for="Title">Title</label><br />
                <select name="Title" id="Title" class="cat_dropdown_smaller">
                <option value="1328222">DR</option>
                <option value="1328221">MISS</option>
                <option value="1328218" selected="selected">MR</option>
                <option value="1328219">MRS</option>
                <option value="1328220">MS</option>
                </select></td>
            </tr>
            <tr>
                <td><label for="FirstName">First Name <span class="req">*</span></label><br />
                <input name="FirstName" id="FirstName" class="cat_textbox" maxlength="255" type="text" /> </td>
            </tr>
            <tr>
                <td><label for="LastName">Last Name <span class="req">*</span></label><br />
                <input name="LastName" id="LastName" class="cat_textbox" maxlength="255" type="text" /> </td>
            </tr>
            <tr>
                <td><label for="EmailAddress">Email Address <span class="req">*</span></label><br />
                <input name="EmailAddress" id="EmailAddress" class="cat_textbox" maxlength="255" type="text" /> </td>
            </tr>
            <tr>
                <td><label for="CAT_Custom_20097767">Phone number <span class="req">*</span></label><br />
                <input maxlength="255" name="CAT_Custom_20097767" id="CAT_Custom_20097767" class="cat_textbox" type="text" /></td>
            </tr>
            <tr>
                <td><label for="ShippingAddress">Shipping Address <span class="req">*</span></label><br />
                <input name="ShippingAddress" id="ShippingAddress" class="cat_textbox" maxlength="500" type="text" /></td>
            </tr>
            <tr>
                <td><label for="ShippingCity">City <span class="req">*</span></label><br />
                <input name="ShippingCity" id="ShippingCity" class="cat_textbox" maxlength="255" type="text" /></td>
            </tr>
            <tr>
                <td><label for="ShippingState">State <span class="req">*</span></label><br />
                <input name="ShippingState" id="ShippingState" class="cat_textbox" maxlength="255" type="text" /></td>
            </tr>
            <tr>
                <td><label for="ShippingZip">Zipcode/Postcode <span class="req">*</span></label><br />
                <input name="ShippingZip" id="ShippingZip" class="cat_textbox" maxlength="255" type="text" /></td>
            </tr>
            <tr>
                <td><label for="ShippingCountry">Country <span class="req">*</span></label><br />
                <select name="ShippingCountry" id="ShippingCountry" class="cat_dropdown">
                <option value=" ">-- Select Country --</option>
                <option value="AU" selected="selected">AUSTRALIA</option>
                </select></td>
            </tr>
            <tr>
                <td><label for="Company">Company</label><br />
                <input name="Company" id="Company" class="cat_textbox" maxlength="255" type="text" /></td>
            </tr>
            <tr>
                <td><label for="ShippingInstructions">Shipping Instructions</label><br />
                <textarea name="ShippingInstructions" id="ShippingInstructions" cols="10" rows="4" class="cat_listbox"></textarea></td>
            </tr>
            <tr>
                <td><label for="BillingAddress">Billing Address <span class="req">*</span></label><br />
                <input name="BillingAddress" id="BillingAddress" class="cat_textbox" maxlength="500" type="text" /></td>
            </tr>
            <tr>
                <td><label for="BillingCity">City <span class="req">*</span></label><br />
                <input name="BillingCity" id="BillingCity" class="cat_textbox" maxlength="255" type="text" /></td>
            </tr>
            <tr>
                <td><label for="BillingState">State <span class="req">*</span></label><br />
                <input name="BillingState" id="BillingState" class="cat_textbox" maxlength="255" type="text" /></td>
            </tr>
            <tr>
                <td><label for="BillingZip">Zipcode/Postcode <span class="req">*</span></label><br />
                <input name="BillingZip" id="BillingZip" class="cat_textbox" maxlength="255" type="text" /></td>
            </tr>
            <tr>
                <td><label for="BillingCountry">Country <span class="req">*</span></label><br />
                <select name="BillingCountry" id="BillingCountry" class="cat_dropdown">
                <option value=" ">-- Select Country --</option>
                <option value="AU" selected="selected">AUSTRALIA</option>
                </select></td>
            </tr>
            <tr>
                <td><label>Payment Method <span class="req">*</span></label><br />
                <input checked="checked" name="PaymentMethodType" id="PaymentMethodType_1" value="1" type="radio" />Credit Card<br />
                <input name="PaymentMethodType" id="PaymentMethodType_5" value="5" type="radio" />PayPal<br />
                <input name="PaymentMethodType" id="PaymentMethodType_9" value="9" type="radio" />Gift Voucher</td>
            </tr>
            <tr class="hideCC">
                <td><label for="CardName">Name on Card <span class="req">*</span></label><br />
                <input name="CardName" id="CardName" class="cat_textbox" autocomplete="off" type="text" /></td>
            </tr>
            <tr class="hideCC">
                <td><label for="CardNumber">Card Number <span class="req">*</span></label><br />
                <input name="CardNumber" id="CardNumber" class="cat_textbox" autocomplete="off" type="text" /></td>
            </tr>
            <tr class="hideCC">
                <td><label>Card Expiry <span class="req">*</span></label><br />
                <select name="CardExpiryMonth" id="CardExpiryMonth" class="cat_dropdown_smaller">
                <option value="01">01</option>
                <option value="02">02</option>
                <option value="03">03</option>
                <option value="04">04</option>
                <option value="05">05</option>
                <option value="06">06</option>
                <option value="07">07</option>
                <option value="08">08</option>
                <option value="09">09</option>
                <option value="10">10</option>
                <option value="11">11</option>
                <option value="12">12</option>
                </select><select name="CardExpiryYear" id="CardExpiryYear" class="cat_dropdown_smaller">
                <option value="2015">2015</option>
                <option value="2016">2016</option>
                <option value="2017">2017</option>
                <option value="2018">2018</option>
                <option value="2019">2019</option>
                <option value="2020">2020</option>
                <option value="2021">2021</option>
                <option value="2022">2022</option>
                <option value="2023">2023</option>
                </select></td>
            </tr>
            <tr class="hideCC">
                <td><label for="CardType">Card Type <span class="req">*</span></label><br />
                <select name="CardType" id="CardType" class="cat_dropdown">
                <option value="1">Visa</option>
                <option value="2">Mastercard</option>
                <option value="4">American Express</option>
                </select></td>
            </tr>
            <tr class="hideCC">
                <td><label for="CardCCV">CCV Number <span class="req">*</span></label><br />
                <input name="CardCCV" id="CardCCV" class="cat_textbox" autocomplete="off" type="text" /></td>
            </tr>
            <tr>
                <td><label for="Amount">Amount <span class="req">*</span> <span id="constraint-300-label"></span></label><br />
                <input name="Amount" id="Amount" class="cat_textbox" type="text" /></td>
            </tr>
            <tr>
                <td><input class="cat_button" value="Submit" id="catwebformbutton" type="submit" /></td>
            </tr>
        </tbody>
    </table>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
 <script type="text/javascript">
//<![CDATA[
var submitcount2140 = 0;function checkWholeForm2140(theForm){var why = "";if (theForm.FirstName) why += isEmpty(theForm.FirstName.value, "First Name"); if (theForm.LastName) why += isEmpty(theForm.LastName.value, "Last Name"); if (theForm.EmailAddress) why += checkEmail(theForm.EmailAddress.value); if (theForm.ShippingAddress) why += isEmpty(theForm.ShippingAddress.value, "Shipping Address"); if (theForm.ShippingCity) why += isEmpty(theForm.ShippingCity.value, "Shipping City"); if (theForm.ShippingState) why += isEmpty(theForm.ShippingState.value, "Shipping State"); if (theForm.ShippingZip) why += isEmpty(theForm.ShippingZip.value, "Shipping Zipcode"); if (theForm.ShippingCountry) why += checkDropdown(theForm.ShippingCountry.value, "Shipping Country"); if (theForm.BillingAddress) why += isEmpty(theForm.BillingAddress.value, "Billing Address"); if (theForm.BillingCity) why += isEmpty(theForm.BillingCity.value, "Billing City"); if (theForm.BillingState) why += isEmpty(theForm.BillingState.value, "Billing State"); if (theForm.BillingZip) why += isEmpty(theForm.BillingZip.value, ""); if (theForm.BillingCountry) why += checkDropdown(theForm.BillingCountry.value, "Billing Country"); if (theForm.PaymentMethodType) why += checkSelected(theForm.PaymentMethodType, "Payment Method");if (!theForm.PaymentMethodType || getRadioSelected(theForm.PaymentMethodType) == 1) { if (theForm.CardName) why += isEmpty(theForm.CardName.value, "Name on Card"); if (theForm.CardNumber) why += isNumeric(theForm.CardNumber.value, "Card Number"); if (theForm.Amount) why += isCurrency(theForm.Amount.value, "Amount"); } if (theForm.CAT_Custom_20097767) why += isCurrency(theForm.CAT_Custom_20097767.value, "Phone number");if(why != ""){alert(why);return false;}if(submitcount2140 == 0){submitcount2140++;theForm.submit();return false;}else{alert("Form submission is in progress.");return false;}}
 // Credit Card info is not required if paying by PayPal, Hosted Credit Card, COD etc
  $(document).ready(function() {
   
    $('[name="PaymentMethodType"]').change(function () {      
     if ($(this).val() == 1) {
      $('.hideCC').show();
     } else {
      $('.hideCC').hide();
     }
     
    });
   }); 
   
//]]>
</script>
</form>
</div>
</div>
</div>
Ray Suelzer
  • 4,026
  • 5
  • 39
  • 55