Everything will work fine providing the user enters sensible information in
the text fields. Try clicking the Calculate button without entering data
and you'll get a strange result. It's a good idea to add validation to
form fields before the calculation is carried out so we can avoid this kind of
result.
We'll use a dynamic text field to display any errors in the data entered.
Add a dynamic text field to the right of the user input fields and give the
variable the name ValidationMessage.
Change the CalculateRepayment function to the one shown below. The function
tests each of the values and creates an error message if the test is not
passed. The repayment amount on the second frame is only displayed if all
tests are passed.
function CalculateRepayment(component) {
//do validation
if (intPrincipal <= 0 || intPrincipal == undefined) {
ValidationMessage = "Principal must be a number greater than 0";
}
else if (floInterest> 100 || floInterest < 1 || floInterest == undefined) {
ValidationMessage = "Annual interest must be between 1 and 100 %";
}
else if (intTerm <=0 || intTerm == undefined) {
ValidationMessage = "Loan term must be greater than 0";
}
else if (intRepayments == undefined || intRepayments <=0) {
ValidationMessage = "Please select a repayment period";
}
else {
//display calculation
gotoAndPlay("calculate");
}
}
You'll also need to add the following line to the first frame
of the actions layer. This will clear the validation message text.