הנה הקוד שאיתו אני בודק תקינות של של יצירת משתמש חדש באתר שלי
(די ערבי ואני יודע שהרבה דברים יכולתי לעשות "טוב יותר" , או יותר יעיל .העניין שהקוד עבד עד היום שבדקתי.
מה שקורה כל בדיקה מעלה קאונטר ב 1, ברגע שהקאונטר מגיע ל "9" ,
בעצם 9 קריטריונים לאישור הרישום הוא אמור להחזר return true
ולעשות פונקצייה אחרת שהיא מוגדרת ב action ליצרת היוזר בפועל במסד נתונים .
הבעייה היא , שהקאונטר כן מגיע ל9 , אבל מסיבה כלשהי , לא עושה את הקטע של אם a=9 ... כלומר אם כל הקריטוריונים תקינים .
הנה הקוד :
function checkscript() { var a=0; var kind=''; function check_us(kind,val) { if (val!='') { if (kind == 'user') { var chk= document.getElementById('user').value; var url ='./App_Func/validate_user.php?username='+chk; } if (kind == 'email') { var chk= document.getElementById('email').value; var url ='./App_Func/validate_user.php?email='+chk; } var xmlHttpN = xmlcr(); xmlHttpN.onreadystatechange = function() { if (xmlHttpN.readyState == 4 && xmlHttpN.status == 200) { var ajaxTextGet = xmlHttpN.responseText ; if (kind=='user') { if(ajaxTextGet=='yes') { document.getElementById('ch_user').style.visibility='visible'; document.getElementById('ch_user').innerHTML='השם תפוס'; } else a++; } if (kind=='email') { if(ajaxTextGet=='yes') { document.getElementById('ch_email').style.visibility='visible'; document.getElementById('ch_email').innerHTML='הכתובת כבר קיימת'; } else a++; } } } xmlHttpN.open('GET', url, true); xmlHttpN.send(null); } } var n_pass = document.getElementById('pass').value; var n_pass1 = document.getElementById('pass1').value; if (n_pass != n_pass1) { document.getElementById('ch_pass').innerHTML='הסיסמאות לא תואמות'; document.getElementById('ch_pass1').innerHTML=''; document.getElementById('ch_pass').visibility='visible'; } else { document.getElementById('ch_pass').innerHTML=''; document.getElementById('ch_pass1').innerHTML=''; a++; } for (i=0;i<4;i++) { var box = document.register.elements; var aaa = box.name; var test = 'ch_' + aaa; test1 = document.getElementById(test); var val = box.value; var filter1 = /^()+()+()+()+$/; if (aaa == 'user') { if (!(filter1.test(val))) {test1.innerHTML='שם המשתמש לא חוקי'; test1.style.visibility='visible'; } else { test1.innerHTML=''; check_us(aaa,val); a++; } } var filter = /^()+\@(()+\.)+({2,4})+$/; if (aaa == 'email') { if (!(filter.test(val))) {test1.innerHTML='האימייל לא חוקי'; test1.style.visibility='visible';} else {a++; test1.innerHTML=''; check_us(aaa,val);} } if (!box.value) { test1.innerHTML='חסר'; test1.style.visibility='visible'; a--;} else { if (aaa =='user') if (val!='הכנס שם משתמש') a++; if (aaa =='email') if (val!='הכנס את הדואר אלקטרוני') a++; if (aaa!='user' && aaa!='email') a++; } } if (a == '9') {alert('tr'); return true;} else {alert('er'); alert(a); return false; } }
|