Thanks to tripy I've been able to set up a delegate booking form on my website
www.brandhalo.co.uk/booking_form.html. This gives an opportunity for a user to pay for one delegate or two, the second having a discount, but only if the first delegate paid the full amount.
My payment processors were concerned about the ability for the user to submit a payment for the second delegate without paying for the main delegate, so they gave me the following script, modified from what tripy gave me, so that the discounted second delegate part could not be filled in unless the main delegate part was completed:
function load(){
window.status = "Made by Ville Leivo 15.07.2002"
document.getElementById("MC_secdel_firstname").dis abled=true
document.getElementById("MC_secdel_jtl").disabled= true
document.getElementById("MC_secdel_email").disable d=true
document.getElementById("MC_secdel_tel").disabled= true
document.getElementById("MC_secdel_fax").disabled= true
document.getElementById("MC_secdel_diet").disabled =true
document.getElementById("MC_secdel_acc").disabled= true
document.getElementById("item2").disabled=true
}
function count(){
var item1price = 249;
var item2price = 199;
var calc=document.getElementById('myForm');
// kortti
if (calc.item1.checked){
var witem1 = document.calc.item1.value = item1price;
} else {
var witem1 = document.calc.item1.value = 0;
}
if (calc.item2.checked && !calc.item2.disabled){
var witem2 = document.calc.item2.value = item2price;
} else {
var witem2 = document.calc.item2.value = 0;
}
calc.amount.value = witem1 + witem2;
}
function enableDiscount()
{
var selected=document.getElementById("item1").checked
if (selected==false)
{
document.getElementById("MC_secdel_firstname").dis abled=true
document.getElementById("MC_secdel_jtl").disabled= true
document.getElementById("MC_secdel_email").disable d=true
document.getElementById("MC_secdel_tel").disabled= true
document.getElementById("MC_secdel_fax").disabled= true
document.getElementById("MC_secdel_diet").disabled =true
document.getElementById("MC_secdel_acc").disabled= true
document.getElementById("item2").disabled=true
}
else if (selected==true)
{
document.getElementById("MC_secdel_firstname").dis abled=false
document.getElementById("MC_secdel_jtl").disabled= false
document.getElementById("MC_secdel_email").disable d=false
document.getElementById("MC_secdel_tel").disabled= false
document.getElementById("MC_secdel_fax").disabled= false
document.getElementById("MC_secdel_diet").disabled =false
document.getElementById("MC_secdel_acc").disabled= false
document.getElementById("item2").disabled=false
}
}
/*function disableDiscount()
{
document.getElementById("MC_secdel_firstname").dis abled=true
document.getElementById("MC_secdel_jtl").disabled= true
document.getElementById("MC_secdel_email").disable d=true
document.getElementById("MC_secdel_tel").disabled= true
document.getElementById("MC_secdel_fax").disabled= true
document.getElementById("MC_secdel_diet").disabled =true
document.getElementById("MC_secdel_acc").disabled= true
document.getElementById("item2").disabled=true
}*/
This works fine in IE7, but not in FF. In FF, both parts of the form can be filled in independently. As I understand it, FF looks for 'cleaner' Javascript, but from what little I know the script seems okay. Any ideas what's wrong?
In addition, I need to be able to prevent the user from altering the final total payment to be sent on to the payment processors. For example, if the final price is £290, it's possible at the moment for the user to amend the total to read just £29 and for this to go through to the processing stage. Is there any way to prevent the alteration of this one field?
Many thanks.
James