Forums

Javascript does not work in chronoform (?)

marcielo 11 Jan, 2011
Hi

I'm working with a form that calculates different variables. It uses javascript, I tested the code and it works. I read the FAQ on how to implement the script into chronoforms. So I used the
var form =  document.ChronoContact.my_form;
as it can be seen below. But this approach doesn't seem to work. I also tried instead replacing my_form with 'ChronoContact.my_form', but didn't work either. I also noticed that if I tested the form in dreamweaver and replaced my_form with 'ChronoContact.my_form' or something else before the dot, it wouldn't work.

Is there a simple reason for this, that would make me look like an ...😶 ?


HTML:
<TABLE BORDER="1" WIDTH="35%" BGCOLOR="">
	<TR>
		<TD WIDTH="53%"><B>Age</B></TD>
		<TD WIDTH="16%"><B>persons</B></TD>
		<TD WIDTH="17%"><B>nights</B></TD>
		<TD WIDTH="14%"><B>€</B></TD>
	</TR>


	<TR>
		<TD>Adults</TD>
		<TD>

			<CENTER>
			<P><INPUT TYPE="TEXT" NAME="Qty1" SIZE="5"
				onBlur="Calculate();">
			</CENTER>

			
		</TD>
		<TD>
			<CENTER>
			<INPUT TYPE="TEXT" NAME="Qtz1" SIZE="5"
				onBlur="Calculate();">
			</CENTER>
		</TD>

		<TD><INPUT TYPE="TEXT" NAME="Cost1" SIZE="8"></TD>
	</TR>

	

	<TR>
		<TD>children < 10 y</TD>
		<TD>
			<CENTER>
			<P><INPUT TYPE="TEXT" NAME="Qty2" SIZE="5"
				onBlur="Calculate();">
			</CENTER>
		</TD>
		<TD>

			<CENTER>
			<P><INPUT TYPE="TEXT" NAME="Qtz2" SIZE="5"
				onBlur="Calculate();">
			</CENTER>
		</TD>
		<TD><INPUT TYPE="TEXT" NAME="Cost2" SIZE="8"></TD>
	</TR>
	


	<TR>
		<TD></TD>
		<TD></TD>

		<TD><B>total</B></TD>
		<TD><INPUT TYPE="TEXT" NAME="Subtotal" SIZE="8" ></TD>
	</TR>
	

</TABLE>


Javascript:
var form =  document.ChronoContact.my_form;

function Calculate()




{
   // calculate each line total
   
	if (form.Qtz1.value == 1)


	form.Cost1.value = form.Qtz1.value * 35;

	else

	form.Cost1.value = form.Qty1.value * form.Qtz1.value * 30;



	
	if (form.Qtz2.value == 1)

	form.Cost2.value = form.Qty2.value * 17.5;

	else 

	form.Cost2.value = form.Qty2.value * form.Qtz2.value * 15;
   
	   
   form.Subtotal.value = parseFloat(form.Cost1.value)
	+ parseFloat(form.Cost2.value);
  


}
GreyHead 11 Jan, 2011
Hi marcielo,

The problem is that your form name is no longer just my_form, ChronoForms changes it to ChronoContact_my_form

Bob
marcielo 11 Jan, 2011
Yes I know, as my post mentions I did try replacing my_form with Chronoforms.my_form but it didn't work
GreyHead 11 Jan, 2011
Hi marcielo,

Please check my post again - it's ChronoContact_my_form, not ChronoContact.my_form or ChronoForms.my_form

Bob
marcielo 12 Jan, 2011
Ok 1000x😶 - corrected my error, and it works in dreamweaver. But is there anything else I should be aware off? Cause its not working in chronoform.
GreyHead 12 Jan, 2011
Hi marcielo,

This is working OK for me
function Calculate()
{
   var form =  document.getElementById('ChronoContact_test_form_12');
   // calculate each line total
   . . .

Bob
This topic is locked and no more replies can be posted.