variabele div ID en naam
Ik heb een probleempje met xhtml id
Ik gebruik het volgende js scriptje
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
// form validation function //
function validate(form) {
var naam = form.naam.value;
var email = form.email.value;
var tekst = form.tekst.value;
var som = form.som.value
var nameRegex = /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$/;
var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
var messageRegex = new RegExp(/<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>
var somRegex = /\(?\d/;
if(naam == "") {
inlineMsg('naam','Wel een naam invullen !',2);
form.naam.focus();
return false;
}
if(!naam.match(nameRegex)) {
inlineMsg('naam','<strong>Fout</strong><br />Geen goede naam ingevuld !',2);
form.naam.focus();
return false;
}
if (form.email.value.length > 0) {
if(!email.match(emailRegex)) {
inlineMsg('email','<strong>Fout</strong><br />Geen geldig email adres !',2);
form.email.focus();
return false;
}
}
if(tekst == "") {
inlineMsg('tekst','Wel wat invullen in het tekstvlak !');
form.tekst.focus();
return false;
}
if(tekst.match(messageRegex)) {
inlineMsg('tekst','<strong>Fout</strong><br />Ongeldige tekst !');
form.tekst.focus();
return false;
}
if(som == "") {
inlineMsg('som','Tel de beide getallen op om te kunnen posten !');
form.som.focus();
return false;
}
if(!som.match(somRegex)) {
inlineMsg('som','<strong>Fout</strong><br />Alleen nummers invullen !');
form.som.focus();
return false;
}
return true;
}
var MSGTIMER = 20;
var MSGSPEED = 5;
var MSGOFFSET = 3;
var MSGHIDE = 3;
// build out the divs, set attributes and call the fade function //
function inlineMsg(target,string,autohide) {
var msg;
var msgcontent;
if(!document.getElementById('msg')) {
msg = document.createElement('div');
msg.id = 'msg';
msgcontent = document.createElement('div');
msgcontent.id = 'msgcontent';
document.body.appendChild(msg);
msg.appendChild(msgcontent);
msg.style.filter = 'alpha(opacity=0)';
msg.style.opacity = 0;
msg.alpha = 0;
} else {
msg = document.getElementById('msg');
msgcontent = document.getElementById('msgcontent');
}
msgcontent.innerHTML = string;
msg.style.display = 'block';
var msgheight = msg.offsetHeight;
//msgarrow.style.height = msgheight + 'px';
var targetdiv = document.getElementById(target);
var targetheight = targetdiv.offsetHeight;
var targetwidth = targetdiv.offsetWidth;
var topposition = topPosition(targetdiv) - ((msgheight - targetheight) / 2);
var leftposition = leftPosition(targetdiv) + targetwidth + MSGOFFSET;
msg.style.top = topposition + 'px';
msg.style.left = leftposition + 'px';
clearInterval(msg.timer);
msg.timer = setInterval("fadeMsg(1)", MSGTIMER);
if(!autohide) {
autohide = MSGHIDE;
}
window.setTimeout("hideMsg()", (autohide * 1000));
}
// hide the form alert //
function hideMsg(msg) {
var msg = document.getElementById('msg');
if(!msg.timer) {
msg.timer = setInterval("fadeMsg(0)", MSGTIMER);
}
}
// face the message box //
function fadeMsg(flag) {
if(flag == null) {
flag = 1;
}
var msg = document.getElementById('msg');
var value;
if(flag == 1) {
value = msg.alpha + MSGSPEED;
} else {
value = msg.alpha - MSGSPEED;
}
msg.alpha = value;
msg.style.opacity = (value / 100);
msg.style.filter = 'alpha(opacity=' + value + ')';
if(value >= 99) {
clearInterval(msg.timer);
msg.timer = null;
} else if(value <= 1) {
msg.style.display = "none";
clearInterval(msg.timer);
}
}
// calculate the position of the element in relation to the left of the browser //
function leftPosition(target) {
var left = 0;
if(target.offsetParent) {
while(1) {
left += target.offsetLeft;
if(!target.offsetParent) {
break;
}
target = target.offsetParent;
}
} else if(target.x) {
left += target.x;
}
return left;
}
// calculate the position of the element in relation to the top of the browser window //
function topPosition(target) {
var top = 0;
if(target.offsetParent) {
while(1) {
top += target.offsetTop;
if(!target.offsetParent) {
break;
}
target = target.offsetParent;
}
} else if(target.y) {
top += target.y;
}
return top;
}
Nu heb ik vaak dezelfde forms op een pagina met bijv een email adres erin
<input class="formulier_input" alt="email optioneel invullen" type="text" accesskey="e" id="email" name="email" />
In xhtml krijg ik dan een fout id already defined
Nou dacht ik zet de ID op id="email_" en name="email_" zodat het dus altijd uniek is
Hoe kan ik dit in de js plaatsen dat dus dit werkt
var email = form.email_verschillendecodes.value;
Hij moet dus checken op email_ en de rest is variabel
Alvast bedankt voor het meedenken
Er zijn nog geen reacties op dit bericht.