marian2oo7
05-20-2009, 09:42 AM
hi all, this is my first post here and first day on this forum :thumbsup:
i use this script:
http://www.leigeber.com/2008/04/dynamic-inline-javascript-form-validation/
but I added more fields. The script is work greate in Opera and IE, but in firefox and google chrome only first field is fine and i don't know why.
this is the script:
http://youmdb.com/messages.html
Here is the JS code:
// form validation function //
function validate(form) {
var movie = form.movie.value;
var year = form.year.value;
var language = form.language.value;
var subtitle = form.subtitle.value;
var key = form.key.value;
var description = form.description.value;
var file = form.file.value;
if(movie == "") {
inlineMsg('movie','You must enter the movie name.',2);
return false;
}
if(year == "") {
inlineMsg('year','Please select year.',2);
return false;
}
if(language == "") {
inlineMsg('language','Please select language.',2);
return false;
}
if(subtitle == "") {
inlineMsg('subtitle','You must enter the subtitle name.',2);
return false;
}
if(key == "") {
inlineMsg('key','You must enter the keywords.',2);
return false;
}
if(description == "") {
inlineMsg('description','You must enter the description.',2);
return false;
}
if(file == "") {
inlineMsg('file','Please select a file!.');
return false;
}
if(document.form.file.value.search(/\.(rar|zip)$/) == -1) {
inlineMsg('file','Only rar and zip file are accepted!',2);
return false;
}
return true;
}
// START OF MESSAGE SCRIPT //
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;
var targetdiv = document.getElementById(target);
targetdiv.focus();
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;
}
// preload the arrow //
if(document.images) {
arrow = new Image(7,80);
arrow.src = "images/msg_arrow.gif";
}
Sorry 4 my english.
i use this script:
http://www.leigeber.com/2008/04/dynamic-inline-javascript-form-validation/
but I added more fields. The script is work greate in Opera and IE, but in firefox and google chrome only first field is fine and i don't know why.
this is the script:
http://youmdb.com/messages.html
Here is the JS code:
// form validation function //
function validate(form) {
var movie = form.movie.value;
var year = form.year.value;
var language = form.language.value;
var subtitle = form.subtitle.value;
var key = form.key.value;
var description = form.description.value;
var file = form.file.value;
if(movie == "") {
inlineMsg('movie','You must enter the movie name.',2);
return false;
}
if(year == "") {
inlineMsg('year','Please select year.',2);
return false;
}
if(language == "") {
inlineMsg('language','Please select language.',2);
return false;
}
if(subtitle == "") {
inlineMsg('subtitle','You must enter the subtitle name.',2);
return false;
}
if(key == "") {
inlineMsg('key','You must enter the keywords.',2);
return false;
}
if(description == "") {
inlineMsg('description','You must enter the description.',2);
return false;
}
if(file == "") {
inlineMsg('file','Please select a file!.');
return false;
}
if(document.form.file.value.search(/\.(rar|zip)$/) == -1) {
inlineMsg('file','Only rar and zip file are accepted!',2);
return false;
}
return true;
}
// START OF MESSAGE SCRIPT //
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;
var targetdiv = document.getElementById(target);
targetdiv.focus();
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;
}
// preload the arrow //
if(document.images) {
arrow = new Image(7,80);
arrow.src = "images/msg_arrow.gif";
}
Sorry 4 my english.