ashleypower
03-19-2003, 02:49 PM
Here's my code:
<HTML>
<HEAD>
<SCRIPT LANGUAGE = "JavaScript">
<!--
var aFields = new Array('A', 'B', 'C', 'D', 'E', 'F');
function GetTopThree(oForm) {
var aValues = new Array();
for (var a = 0; a < aFields.length; a++)
aValues[a] = eval('parseInt(oForm.textbox' + aFields[a] + '.value)');
for (var i = 0; i < (aValues.length - 1); i++) {
for (var j = i + 1; j < aValues.length; j++) {
if (aValues[j] > aValues[i]) {
var iTempValue = aValues[i];
aValues[i] = aValues[j];
aValues[j] = iTempValue;
var sTempValue = aFields[i];
aFields[i] = aFields[j];
aFields[j] = sTempValue;
}
}
}
for (var k = 0; k < 2; k++) {
if ((aValues[k] == aValues[k + 1]) && (aFields[k] > aFields[k + 1])) {
var iTempValue2 = aValues[k];
aValues[k] = aValues[k + 1];
aValues[k + 1] = iTempValue2;
var sTempValue2 = aFields[k];
aFields[k] = aFields[k + 1];
aFields[k + 1] = sTempValue2;
}
}
oForm.topThree.value = aFields[0] + aFields[1] + aFields[2];
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME = "myForm" onsubmit = "GetTopThree(this); return false;">
<INPUT TYPE = "text" SIZE = "3" NAME = "textboxA">
<INPUT TYPE = "text" SIZE = "3" NAME = "textboxB">
<INPUT TYPE = "text" SIZE = "3" NAME = "textboxC">
<INPUT TYPE = "text" SIZE = "3" NAME = "textboxD">
<INPUT TYPE = "text" SIZE = "3" NAME = "textboxE">
<INPUT TYPE = "text" SIZE = "3" NAME = "textboxF">
<BR>
<INPUT TYPE = "submit" NAME = "submit" VALUE = "Get Code">
<P>
<INPUT TYPE = "text" NAME = "topThree">
</FORM>
</BODY>
</HTML>
Numbers are inserted into the fields, labeled from "a" to "f". The numbers are sorted in numerical order. If two numbers are the same, it goes in alphabetical order, and takes the top 3 values. Here's what I mean:
A = 1, B = 1, C = 1, D = 1, E = 1, F = 2 should output FAB
BUT.... my code outputs FBC.
Help please!
<HTML>
<HEAD>
<SCRIPT LANGUAGE = "JavaScript">
<!--
var aFields = new Array('A', 'B', 'C', 'D', 'E', 'F');
function GetTopThree(oForm) {
var aValues = new Array();
for (var a = 0; a < aFields.length; a++)
aValues[a] = eval('parseInt(oForm.textbox' + aFields[a] + '.value)');
for (var i = 0; i < (aValues.length - 1); i++) {
for (var j = i + 1; j < aValues.length; j++) {
if (aValues[j] > aValues[i]) {
var iTempValue = aValues[i];
aValues[i] = aValues[j];
aValues[j] = iTempValue;
var sTempValue = aFields[i];
aFields[i] = aFields[j];
aFields[j] = sTempValue;
}
}
}
for (var k = 0; k < 2; k++) {
if ((aValues[k] == aValues[k + 1]) && (aFields[k] > aFields[k + 1])) {
var iTempValue2 = aValues[k];
aValues[k] = aValues[k + 1];
aValues[k + 1] = iTempValue2;
var sTempValue2 = aFields[k];
aFields[k] = aFields[k + 1];
aFields[k + 1] = sTempValue2;
}
}
oForm.topThree.value = aFields[0] + aFields[1] + aFields[2];
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME = "myForm" onsubmit = "GetTopThree(this); return false;">
<INPUT TYPE = "text" SIZE = "3" NAME = "textboxA">
<INPUT TYPE = "text" SIZE = "3" NAME = "textboxB">
<INPUT TYPE = "text" SIZE = "3" NAME = "textboxC">
<INPUT TYPE = "text" SIZE = "3" NAME = "textboxD">
<INPUT TYPE = "text" SIZE = "3" NAME = "textboxE">
<INPUT TYPE = "text" SIZE = "3" NAME = "textboxF">
<BR>
<INPUT TYPE = "submit" NAME = "submit" VALUE = "Get Code">
<P>
<INPUT TYPE = "text" NAME = "topThree">
</FORM>
</BODY>
</HTML>
Numbers are inserted into the fields, labeled from "a" to "f". The numbers are sorted in numerical order. If two numbers are the same, it goes in alphabetical order, and takes the top 3 values. Here's what I mean:
A = 1, B = 1, C = 1, D = 1, E = 1, F = 2 should output FAB
BUT.... my code outputs FBC.
Help please!