Validera alla typer av fält med javascript
Fältvalidering med Javascript kan vara tidsödande, här ett script som validerar alla olika typer av fält man kan ha på webben. (text,textarea,select-one,radio,select-multiple och checkbox)
Animationen visar hur jag tvingar användaren att fylla alla fält i ett formulär innan det postas till servern.
Här är scriptet som gör valideringen
function valid( Fields, Messages) {
var frm = window.document.forms[0];
isValid = true;
var strMsg = "Please enter value for these fields:\n\n";
for (var i=0; i<Fields.length ; i++) {
var FType=eval( 'frm.'+Fields[i]+'.type' );
switch (FType)
{
case "text" :
if ( eval ( 'frm.'+Fields[i]+'.value' ) =='') {
isValid = false;
strMsg += "- " + Messages[i] +"\n";
}
break
case "textarea" :
if ( eval ( 'frm.'+Fields[i]+'.value' ) =='') {
isValid = false;
strMsg += "- " + Messages[i] +"\n";
}
break
case "select-one" :
chk = 'false';
value = eval ( 'frm.'+Fields[i]+'.options[frm.'+Fields[i]+'.selectedIndex].text');
if (value !='- Select -' && value != '' ) {
chk = 'true';
}
if (chk=='false') {
isValid = false;
strMsg += "- " + Messages[i] +"\n";
}
break
case "select-multiple":
if ( eval ( 'frm.'+Fields[i]+'.selectedIndex')==-1) {
isValid = false;
strMsg += "- " + Messages[i] +"\n";
}
break
default:
switch (eval ( 'frm.'+Fields[i]+'[0].type' ) ) {
case "radio" :
chk = 'false';
for (var m=0; m < eval ('frm.'+Fields[i]+'.length') ; m++) {
if ( eval ( 'frm.'+Fields[i]+'['+m +'].checked') ) {
chk = 'true';
}
}
if (chk=='false') {
isValid = false;
strMsg += "- " + Messages[i] +"\n";
}
break
case "checkbox":
chk = 'false';
for (var m=0; m < eval ('frm.'+Fields[i]+'.length') ; m++) {
if ( eval ( 'frm.'+Fields[i]+'['+m +'].checked') ) {
chk = 'true';
}
}
if (chk=='false') {
isValid = false;
strMsg += "- " + Messages[i] +"\n";
}
break
}
}
}
if (!isValid) alert(strMsg + "\n");
return isValid;
}
Här är hur du kallar på valideringsfunktionen från en save knapp
var Fields = new Array("Subject","Choice","Check","Body","List")
var Msg = new Array("The Subject","The Choice","Check","Body","List");
if(valid(Fields,Msg)){
document.forms[0].submit()}
Relevanta Poster på Notessidan: