צפיות
תשובות
עזרה בבקשה…
כתבתי את הפונקציה הבאה:
function check()
{
var err;
err="השגיאות שלך הן:"
if (GetElementById('username')=="")
{
err=err+ "לא הזנת שם משתמש"
}
if (GetElementById('password')=="")
{
err=err+ "n לא הזנת סיסמא"
}
if (GetElementById(’emial')=="")
{
err=err+ "n לא הזנת כתובת דואר אלקטרוני"
}
if (GetElementById('siteadd')=="http://")
{
err=err+ "n לא הזנת את כתובת אתרך"
}
if (GetElementById('tiur')=="")
{
err=err+ "n אתרך לא מתואר"
}
if (GetElementById('username')!="" && GetElementById('tiur')!="" && GetElementById('siteadd')!="http://" && GetElementById(’emial')!="" && GetElementById('password')!="")
{
err=""
}
if (err!="")
{
alert(err)
}
else
{
return false;
}
}
עכשיו הכל טוב ויפה… ואין שום שגיאה…
אבל הגדרתי את הכפתור של שליחת הטופס ככה:
<input type="submit" name="send" value="שלח" onclick="check();">
אבל הבעיה… שהוא לא בודק את הטופס…. כלומר גם אם כל השדות רייקים הוא ממשיך האלה ולא אומר כלום….
יש למישהו רעיון למה??
תודה מראש לעוזרים…
.נב לא שירשרתי כי זה לא הקפיץ…
13 תשובות
שימוש שגוי
אתה צריך להשתמש במשהו כזה עבור בדיקת ערכי טופס:
if(document.getElementById("username").value=="")
או
if(document.formName.username.value=="")
formName = שם הטופס המוגדר בתגית form.
הוספתי VALUE ועדיין
הוספתי VALUE ו DOCUMENT אבל זה עדיין לא בודק את זה…
וזה לא הפעם הראשונה שאני נתקל בשגיאה הזו…
וגם…
אני כל הזמן רואה שאנשים מוותרים על האןבייקט DOCUMENT וזה פועל…
הקפדת על אותיות קטנות וגדולות?
אם כבר אתה משתמש בטופס, עדיף שתשתמש באופציה השניה שכתבתי.
תודה רבה!!! ועוד דבר אחד אם אפשר…
הדבר…
עשיתי שזה יעלה הודעת שגיאה….
ויגיד איזה תאים למלא…
הצליח…. אבל הבעיה שזה ממשיך לדף הבא בכל זאת…. מה אני צריך לעשות כדי שזה לא ימשיך לדף הבא בעת שגיאה???
ואיך אני עושה שהטקסט ב ALERT יהיה מיושר לימין???
תודה מראש…. איליה…
תשובה
שנה את משפט התנאי שלך בפונקציה לזה:
if(err!="") {
return false;
alert(err);
}
else
return true;
בטופס אתה צריך להוסיף את בדיקת הטופס ולא בכפתור.
<form action="page.asp" method="post" OnSubmit="return check(this);">
ובקשר לשאלה השנייה שלי…
זה בכלל אפשרי???
כי אני רואה באתרים…
אפשרי
תוסיף dir=rtl בתגית ה-HTML.
<html dir="rtl">
תודה רבה לך!!!
יש לי משהו מוזר פה…
פונקציה: (תודה לבילד)
<script language="JavaScript">
function check()
{
var err;
err="השגיאות שלך הן:";
if (document.reg.username.value=="")
{
err=err+ "n לא הזנת שם משתמש";
}
if (document.reg.password.value=="")
{
err=err+ "n לא הזנת סיסמא";
}
if (document.reg.email.value=="")
{
err=err+ "n לא הזנת כתובת דואר אלקטרוני";
}
if (document.reg.email.value.indexof('@')==0)
{
err=err+ "n כתובת דואר לא תקינה"
if (document.reg.siteadd.value=="")
{
err=err+ "n לא הזנת את כתובת אתרך";
}
if (document.reg.banner.value=="")
{
err=err+ "n לא העלת באנר";
}
if (document.reg.description.value=="")
{
err=err+ "n אתרך לא מתואר";
}
if ((document.reg.username.value!="") && (document.reg.tiur.value!="") && (document.reg.siteadd.value!="http://"😉 && (document.reg.email.value!="") && (document.reg.password.value!="") && (document.reg.email.value.indexof('@')!=0))
{
err="";
}
if (err!="")
{
alert(err);
return false;
}
else
{
return true;
}
}
</script>
אבל משום מה אם אני מזין רק שם משתמש או רק אימייל (גם אם הוא לא נכון) אני לא מקבל את ה ALERT…
ובכל השאר אני מקבל…
למה זה???
משפט התנאי
הזה
if ((document.reg.username.value!="") && (document.reg.tiur.value!="") && (document.reg.siteadd.value!="http://"😉 && (document.reg.email.value!="") && (document.reg.password.value!="") && (document.reg.email.value.indexof('@')!=0))
{
err="";
}
די מיותר כיוון שאם כל הטופס תקין המשתנה err ישאר ריק ולכן אין צורך במשפט התנאי הנ"ל.
בנוסף, הייתי עושה את משפטי התנאי בשרשור מתאים לפי משפט התנאי שלפניו, למשל:
if(something=="")
err += "n msg";
else {
if(something2=="")
err += "n msg";
else {
if(something3=="")
err += "n msg";
else {
if(err=="")
return true;
else {
alert(err);
return false;
}
}
}
}
לא…. אתה לא צודק…
אופס… ברח לי האנטר… אתה לא צודק
שים לב למה שווה ERR בהתחלה….
אז זה לא צריך להיות כך
אתה צריך להוסיף את המשפט הזה בתוך ה-alert.
בכל מקרה, עדיף להשתמש בשרשור משפטי תנאי (לא קשור ל-err אלא בכלליות).