Hello everyone! I have made a program that calculates a person’s GPA and it worked fine [URL=”http://userpages.umbc.edu/~ofek1/gpa.html”]http://userpages.umbc.edu/~ofek1/gpa.html
Yesterday, though, I added a “Add a class” button and now have 2 problems.
1. If I say I’m taking ONE class and enter grades it calls GenerateGradeReport() and everything works fine. If I enter anything but a number it alerts the user and doesn’t call GenerateGradeReport(), perfect still.
However, if I say I’m taking MORE THAN ONE class (even before adding a class dynamically) and enter grades it calls GenerateGradeReport() and everything works fine, still. But…if I enter anything but a number it alerts the user BUT STILL CALLS GenerateGradeReport()! As in only the first class’ input controls the submission. The rest of the inputs can be invalid but it still proceeds!
And in the form if I try onsubmit=”return Validate(); return false;” (like it should be) instead of just onsubmit=”Validate(); return false;” (like it is now), the page gets reloaded on submission!
2. The is pretty minor but, in my function AddClass() the line breaks aren’t getting inserted. I must have incorrect syntax
[CODE]function AddClass()
{
var newCredits = document.createElement(‘input’); // Create credit input field
newCredits.setAttribute(‘type’, ‘text’);
newCredits.setAttribute(‘name’, ‘credits’);
newCredits.setAttribute(‘maxlength’, ‘1’);
newCredits.setAttribute(‘onchange’, ‘return ValidateCredits(this.value)’);
newCredits.setAttribute(‘form’, ‘gpaf’);
var newPoints = document.createElement(‘input’); // Create point input field
newPoints.setAttribute(‘type’, ‘text’);
newPoints.setAttribute(‘name’, ‘points’);
newPoints.setAttribute(‘maxlength’, ‘1’);
newPoints.setAttribute(‘onchange’, ‘return ValidatePoints(this.value)’);
newPoints.setAttribute(‘form’, ‘gpaf’);
var courseCount = document.getElementsByName(‘credits’).length + 1; // Constants, for later use
var marker = document.getElementById(‘submit’);
var newLine = document.createElement(‘br’);
var creditText = document.createTextNode(‘Number of credits for course: ‘ + courseCount); // Insert credit input field
marker.parentNode.insertBefore(creditText, marker);
marker.parentNode.insertBefore(newLine, marker);
marker.parentNode.insertBefore(newCredits, marker);
marker.parentNode.insertBefore(newLine, marker);
var pointText = document.createTextNode(‘Grade points earned for course: ‘ + courseCount); // Insert point input field
marker.parentNode.insertBefore(pointText, marker);
marker.parentNode.insertBefore(newLine, marker);
marker.parentNode.insertBefore(newPoints, marker);
marker.parentNode.insertBefore(newLine, marker);
}