Tekst fra alert-box som alm. tekst i HTML-dokument
Jeg har følgende JavaScript placeret i et eksternt js-dokument, der checker form-input. Såfremt der mangler udfyldning i visse felter, kommer der en alert-box op. Hvordan kan man lave teksten i denne alert-box om til en almindelig stump tekst i selve HTML-dokumentet hvori formen befinder sig, og hvor denne tekst kommer frem, hvis der mangler oplysninger i formen?Det eksterne js-dokument indeholder følgende:
--------------------------------------
var checkObjects = new Array();
var errors = \"\";
var returnVal = false;
var language = new Array();
language[\"header\"] = \"\";
language[\"start\"] = \"\";
language[\"field\"] = \"Fejl: \";
language[\"require\"] = \" skal udfyldes\";
language[\"min\"] = \" og skal bestå af mindst \";
language[\"max\"] = \" og må ikke indeholde mere end \";
language[\"minmax\"] = \" og højst \";
language[\"chars\"] = \" tal\";
language[\"num\"] = \" og må kun indeholde tal\";
language[\"email\"] = \" skal indeholde gyldig e-mail adresse\";
function define(n, type, HTMLname, min, max, d) {
var p;
var i;
var x;
if (!d) d = document;
if ((p=n.indexOf(\"?\"))>0&&parent.frames.length) {
d = parent.frames[n.substring(p+1)].document;
n = n.substring(0,p);
}
if (!(x = d[n]) && d.all) x = d.all[n];
for (i = 0; !x && i < d.forms.length; i++) {
x = d.forms[i][n];
}
for (i = 0; !x && d.layers && i < d.layers.length; i++) {
x = define(n, type, HTMLname, min, max, d.layers[i].document);
return x;
}
eval(\"V_\"+n+\" = new formResult(x, type, HTMLname, min, max);\");
checkObjects[eval(checkObjects.length)] = eval(\"V_\"+n);
}
function formResult(form, type, HTMLname, min, max) {
this.form = form;
this.type = type;
this.HTMLname = HTMLname;
this.min = min;
this.max = max;
}
function validate() {
if (checkObjects.length > 0) {
errorObject = \"\";
for (i = 0; i < checkObjects.length; i++) {
validateObject = new Object();
validateObject.form = checkObjects[i].form;
validateObject.HTMLname = checkObjects[i].HTMLname;
validateObject.val = checkObjects[i].form.value;
validateObject.len = checkObjects[i].form.value.length;
validateObject.min = checkObjects[i].min;
validateObject.max = checkObjects[i].max;
validateObject.type = checkObjects[i].type;
if (validateObject.type == \"num\" || validateObject.type == \"string\") {
if ((validateObject.type == \"num\" && validateObject.len <= 0) || (validateObject.type == \"num\" && isNaN(validateObject.val))) { errors += language[\'start\'] + language[\'field\'] + validateObject.HTMLname + language[\'require\'] + language[\'num\'] + \"\\n\";
} else if (validateObject.min && validateObject.max && (validateObject.len < validateObject.min || validateObject.len > validateObject.max)) { errors += language[\'start\'] + language[\'field\'] + validateObject.HTMLname + language[\'require\'] + language[\'min\'] + validateObject.min + language[\'minmax\'] + validateObject.max+language[\'chars\'] + \"\\n\";
} else if (validateObject.min && !validateObject.max && (validateObject.len < validateObject.min)) { errors += language[\'start\'] + language[\'field\'] + validateObject.HTMLname + language[\'require\'] + language[\'min\'] + validateObject.min + language[\'chars\'] + \"\\n\";
} else if (validateObject.max && !validateObject.min &&(validateObject.len > validateObject.max)) { errors += language[\'start\'] + language[\'field\'] + validateObject.HTMLname + language[\'require\'] + language[\'max\'] + validateObject.max + language[\'chars\'] + \"\\n\";
} else if (!validateObject.min && !validateObject.max && validateObject.len <= 0) { errors += language[\'start\'] + language[\'field\'] + validateObject.HTMLname + language[\'require\'] + \"\\n\";
}
} else if(validateObject.type == \"email\") {
if ((validateObject.val.indexOf(\"@\") == -1) || (validateObject.val.charAt(0) == \".\") || (validateObject.val.charAt(0) == \"@\") || (validateObject.len < 6) || (validateObject.val.indexOf(\".\") == -1) || (validateObject.val.charAt(validateObject.val.indexOf(\"@\")+1) == \".\") || (validateObject.val.charAt(validateObject.val.indexOf(\"@\")-1) == \".\")) { errors += language[\'start\'] + language[\'field\'] + validateObject.HTMLname + language[\'email\'] + \"\\n\"; }
}
}
}
if (errors) {
alert(language[\"header\"].concat(\"\\n\" + errors));
errors = \"\";
returnVal = false;
} else {
returnVal = true;
}
}
--------------------------------------
i <head> i selve HTML-dokumentet med formen er angivet følgende:
--------------------------------------
<script type=\"text/javascript\">
<!--
function init()
{
define(\'email\', \'email\', \'\"Afsender e-mail\"\');
define(\'name\', \'string\', \'\"Navn\"\');
define(\'address\', \'string\', \'\"Fuld adresse\"\');
define(\'phone\', \'num\', \'\"Telefon\"\', 8, 10);
}
//-->
</script>
--------------------------------------
- jeg ved ikke, hvad jeg skal skrive, for at meddelelsen fra alert-boxen kan blive til almindelig tekst i HTML-dokumentet - gør du?
- hilsener fra Poul Chr.
