phrz
%Europe/Berlin %526 %2005, 13:38
Lieve mensen,
Ik zit met een klein probleempje ... ik ben een formuliertje aan het maken die gelijk valideerd bij het focussen op een ander veld. Nu werkt dit allemaal prima, alleen wanneer ik het wil verzenden wil ik dat al de required-velden goed zijn ingevuld. Dit check ik met de blnIsValid boolean, maar het probleem is nu, wanneer je nog je focus op het veld hebt staan, ziet flash het als onveranderd omdat die boolean pas geset wordt bij de killfocus ... iemand enig idee hoe ik dit kan oplossen????
HELP :S
var arrFields:Array = new Array(frmBedrijf, frmStraat, frmPostcode, frmPlaats, frmNaam, frmEmail, frmTelefoon, frmOpmerking);
var arrRequired:Array = new Array(frmBedrijf, frmNaam, frmEmail);
var clrFocus:String = "0xCCCCCC";
var clrBlur:String = "0xFFFFFF";
var clrError:String = "0xFF0000";
var objCurrentFocus:Object;
var objOldFocus:Object;
// fc: stands for field count //
for (fc = 0; fc < arrFields.length; fc ++){
arrFields[fc].onSetFocus = function(){
this.backgroundColor = clrFocus;
objCurrentFocus = this;
validate(objOldFocus);
}
arrFields[fc].onKillFocus = function(){
this.backgroundColor = clrBlur;
objOldFocus = this;
}
arrFields[fc].borderColor = 0x333333;
arrFields[fc].text = "";
arrFields[fc].tabIndex = fc;
}
// select first field //
Selection.setFocus(arrFields[0]);
function validate(objOldFocus){
for (fc = 0; fc < arrRequired.length; fc ++){
if(objOldFocus == arrRequired[fc]){
if(objOldFocus.length >= 2){
if(objOldFocus == frmEmail){
objOldFocus.blnIsValid= validateEmail(objOldFocus.text);
}else{
objOldFocus.blnIsValid = true;
}
}else{
objOldFocus.blnIsValid = false;
}
if(objOldFocus.blnIsValid == true){
objOldFocus.backgroundColor = clrBlur;
}else{
objOldFocus.backgroundColor = clrError;
}
}
}
}
validateEmail=function(strEmail:String):Boolean{
var tokens:Array;
var index:Number=0;
index=strEmail.indexOf("@");
if(index<0 || (index+1)>(strEmail.length-1-1-1))return false;
index=strEmail.indexOf("@",index+1);
if(index>=0)return false;
tokens=strEmail.split("@",2);
if(tokens.length!=2){
return false;
}
tokens[1]=split(".",2);
if(tokens.length!=2){
return false;
}else{
return true;
}
}
btnSubmit.onRelease = function(){
var intIsTrue = 0;
for (fc = 0; fc < arrRequired.length; fc ++){
if(arrRequired[fc].blnIsValid == true){
intIsTrue ++;
}else{
intIsTrue -1;
}
}
if(intIsTrue == arrRequired.length){
trace("verstuur");
}
}
Ik zit met een klein probleempje ... ik ben een formuliertje aan het maken die gelijk valideerd bij het focussen op een ander veld. Nu werkt dit allemaal prima, alleen wanneer ik het wil verzenden wil ik dat al de required-velden goed zijn ingevuld. Dit check ik met de blnIsValid boolean, maar het probleem is nu, wanneer je nog je focus op het veld hebt staan, ziet flash het als onveranderd omdat die boolean pas geset wordt bij de killfocus ... iemand enig idee hoe ik dit kan oplossen????
HELP :S
var arrFields:Array = new Array(frmBedrijf, frmStraat, frmPostcode, frmPlaats, frmNaam, frmEmail, frmTelefoon, frmOpmerking);
var arrRequired:Array = new Array(frmBedrijf, frmNaam, frmEmail);
var clrFocus:String = "0xCCCCCC";
var clrBlur:String = "0xFFFFFF";
var clrError:String = "0xFF0000";
var objCurrentFocus:Object;
var objOldFocus:Object;
// fc: stands for field count //
for (fc = 0; fc < arrFields.length; fc ++){
arrFields[fc].onSetFocus = function(){
this.backgroundColor = clrFocus;
objCurrentFocus = this;
validate(objOldFocus);
}
arrFields[fc].onKillFocus = function(){
this.backgroundColor = clrBlur;
objOldFocus = this;
}
arrFields[fc].borderColor = 0x333333;
arrFields[fc].text = "";
arrFields[fc].tabIndex = fc;
}
// select first field //
Selection.setFocus(arrFields[0]);
function validate(objOldFocus){
for (fc = 0; fc < arrRequired.length; fc ++){
if(objOldFocus == arrRequired[fc]){
if(objOldFocus.length >= 2){
if(objOldFocus == frmEmail){
objOldFocus.blnIsValid= validateEmail(objOldFocus.text);
}else{
objOldFocus.blnIsValid = true;
}
}else{
objOldFocus.blnIsValid = false;
}
if(objOldFocus.blnIsValid == true){
objOldFocus.backgroundColor = clrBlur;
}else{
objOldFocus.backgroundColor = clrError;
}
}
}
}
validateEmail=function(strEmail:String):Boolean{
var tokens:Array;
var index:Number=0;
index=strEmail.indexOf("@");
if(index<0 || (index+1)>(strEmail.length-1-1-1))return false;
index=strEmail.indexOf("@",index+1);
if(index>=0)return false;
tokens=strEmail.split("@",2);
if(tokens.length!=2){
return false;
}
tokens[1]=split(".",2);
if(tokens.length!=2){
return false;
}else{
return true;
}
}
btnSubmit.onRelease = function(){
var intIsTrue = 0;
for (fc = 0; fc < arrRequired.length; fc ++){
if(arrRequired[fc].blnIsValid == true){
intIsTrue ++;
}else{
intIsTrue -1;
}
}
if(intIsTrue == arrRequired.length){
trace("verstuur");
}
}