I try to create an IQtest for my homepage, and have downloaded a JavaScript code from another site with permission from the author, but I cant contact the author at his email anymore unfortually, so thats why I place my question in this forum.
Now to the problem:
On my IQtest which is located here
http://yalla.dk/projectjs/test.htm ( not finished ) Ive some different cases in my test.
js ( see code below ) if the person has 0 correct, it will show this site
http://yalla.dk/projectjs/result.html?result=0 - if the person
score 1 correct, it will show this site
http://yalla.dk/projectjs/result.html?result=1 and so on. But my problem is when the person score 10 correct (
http://yalla.dk/projectjs/result.html?result=10 ) then the site
display its like only 1 correct, this problem only occure when user get 10 or more correct - mayby its because that 10/11/12 is a two digis number?
I hope you people out there understand what I mean, and can help me to away with this big problem.
test.js
- Code: Select all
var answers=new
Array('D','C','B','D','D','C','C','C','C','C','C','C','C','C','C','C','C','*C','C','C');
var query=1;
var age=location.search.substr(5,1);
var tick=480;
function updateAnswer(value) {
setFieldValue(eval('document.forms[0].Item' + query), value, true);
if(tick>0) {
if(query<20) {
query++;
}
doNavigate();
}
}
function doNavigate() {
document.getElementById('testcount').innerHTML=query;
document.getElementById('testimage').src='gf/item' + query + '.JPG';
var curValue=getFieldValue(eval('document.forms[0].Item' + query));
if(curValue=='') {
for(var i=0;i<5;i++) {
document.forms[0].Item[i].checked=false;
}
}
else {
setFieldValue(document.forms[0].Item, curValue, true);
}
if(query<2) {
document.getElementById('Previous').style.visibility='hidden';
}
else {
document.getElementById('Previous').style.visibility='';
}
if(query>19) {
document.getElementById('Next').style.visibility='hidden';
}
else {
document.getElementById('Next').style.visibility='';
}
}
function countDown() {
tick--;
var minutes=parseInt(tick/60);
var seconds=tick % 60
if(seconds<10) {seconds='0' + seconds}
document.getElementById('timer').innerHTML=minutes + ':' +
seconds;
if (tick == 0) {
alert("Nu har 8 minuter passerat!");
tester();
// document.getElementById('Previous').style.visibility='hidden';
// document.getElementById('Next').style.visibility='hidden';
return;
}
var command="countDown()";
window.setTimeout(command,1000);
}
function tester() {
var score=age;
var frm=document.forms[0];
for(var i=1; i<=answers.length; i++) {
var fld=eval('frm.Item' + i);
if(getFieldValue(fld)==answers[i-1]) {
score++;
}
}
switch(score) {
default:
location.href='result.html?result=0';
break;
case 1:
location.href='result.html?result=1';
break;
case 2:
location.href='result.html?result=2';
break;
case 3:
location.href='result.html?result=3';
break;
case 4:
location.href='result.html?result=4';
break;
case 5:
location.href='result.html?result=5';
break;
case 6:
location.href='result.html?result=6';
break;
case 7:
location.href='result.html?result=7';
break;
case 8:
location.href='result.html?result=8';
break;
case 9:
location.href='result.html?result=9';
break;
case 10:
location.href='result.html?result=10';
break;
}
}
function displayResult() {
var result=location.search.substr(8,1);
document.getElementById('result' + result).style.display='';
}
function isArray(obj) {
if(obj.constructor.toString().indexOf("Array") == -1) {
return false;
}
else {
return true;
}
}
function setFieldValue(field, value, replace) {
if(field.type) {
var fieldType=field.type;
}
else {
var fieldType=field[0].type;
}
switch(fieldType) {
case "text":
case "textarea":
case "password":
case "hidden":
if(replace) {
field.value=value;
}
else {
field.value+=value;
}
case "select-one":
if(isArray(value)) {
value=value[0];
}
for(var i=0; i<field.length; i++) {
if(field.options[i].text==value || field.options[i].value==value)
{
field.options[i].selected=true;
break;
}
}
break;
case "select-multiple" :
var arrFlag=isArray(value);
for(var i=0; i < field.options.length; i++) {
if(field.options[i].selected && replace) {
field.options[i].selected=false;
}
if(arrFlag) {
for(var j=0; j<value.length; j++) {
if(field.options[i].text==value[j] ||
field.options[i].value==value[j]) {
field.options[i].selected=true;
}
}
}
else {
if(field.options[i].text==value || field.options[i].value==value)
{
field.options[i].selected=true;
}
}
}
break;
case "button" :
case "reset" :
case "submit" :
return;
case "radio" :
if(isArray(value)) {
value=value[0]
}
for (i = 0; i < field.length; i++) {
if (field[i].value==value) {
return field[i].checked=true;
}
}
break;
case "checkbox" :
var arrFlag=isArray(value);
for(i = 0; i < field.length; i++) {
if(field[i].checked && replace) {
field[i].checked=false;
}
if(arrFlag) {
for(var j=0; j<value.length; j++) {
if(field[i].value==value[j]) {
field[i].checked=true;
break;
}
}
}
else {
if(field[i].value==value[j]) {
field[i].checked=true;
break;
}
}
}
default :
var str = "";
for (x in field) {
str += x + "\n";
}
alert("I couldn't figure out what type this field is...\n\n" +
field.name + ": ???\n\n\n" + str + "\n\nlength = " + field.length);
}
}
function getFieldValue(field) {
if(field.type) {
var fieldType=field.type;
}
else {
var fieldType=field[0].type;
}
switch(fieldType) {
case "text":
case "textarea":
case "password":
case "hidden":
return field.value;
case "select-one":
var i=field.selectedIndex;
if (i == -1) {
return "";
}
else {
if(field.options[i].value=='') {
return field.options[i].text;
}
else {
return field.options[i].value;
}
}
case "select-multiple" :
var allChecked = new Array();
for(i = 0; i < field.options.length; i++) {
if(field.options[i].selected) {
if(field.options[i].value=='') {
allChecked[allChecked.length]=field.options[i].text
}
else {
allChecked[allChecked.length]=field.options[i].value
}
}
}
return allChecked;
case "button" :
case "reset" :
case "submit" :
return "";
case "radio" :
for (i = 0; i < field.length; i++) {
if (field[i].checked) {
return field[i].value;
}
}
return "";
case "checkbox" :
var allChecked = new Array();
for(i = 0; i < field.length; i++) {
if(field[i].checked) {
allChecked[allChecked.length]=field[i].value;
}
}
return allChecked;
default :
var str = "";
for (x in field) {
str += x + "\n";
}
alert("I couldn't figure out what type this field is...\n\n" +
field.name + ": ???\n\n\n" + str + "\n\nlength = " + field.length);
}