שלח תשובה

זירת השאלות

325
צפיות
7
תשובות

בעיה בסקריפט לוידוא שדות בטופס

,‏ 31 במאי, 2005

הסקריפט שלי בודק אם שדות הטקסט full_name ו- email נשארו ריקים בעת שליחת הטופס. אם כן, הוא יחזיר אלרט.
הבעיה שלי היא שלאחר החזרת האלרט, הוא שולח את הטופס (ממשיך את הפעולה).
כיצד אני עוצר את הפעולה אם יש אלרט?



<SCRIPT LANGUAGE="JavaScript">

<!– Begin
function verify() {
var themessage = "עלייך להשלים את השדות הבאים: ";
if (document.form1.full_name.value=="") {
themessage = themessage + " – שם מלא";
}
if (document.form1.email.value=="") {
themessage = themessage + " –  כתובת אימייל";
}
//alert if fields are empty and cancel form submit
if (themessage == "עלייך להשלים את השדות הבאים: ") {
document.form1.submit();
}
else {
alert(themessage);
return false;
   }
}
//  End –>
</script>

………(הטופס)
<input type="submit" name="submit" value="השלם הצטרפות"  onclick="verify();">


תגיות:

7 תשובות

  1. BuildHome הגיב:

    פשוט מאוד
    תחזיר true או false מהפונקציה (אתה בינתיים מחזיר רק false) ותוסיף את בקשת הפונקציה בתגית הטופס ולא בכפתור השליחה:
    onsubmit="return verify();"

  2. prince01 הגיב:

    לא מובן לי
    במידה והשדות ריקים, הוא מחזיר אלרט וfalse. לא הבנתי איפה אני צריך לשנות   .
    ואת הonclick העברתי לתגית הform כ-onsubmit.
    עדין לא עובד 🙁

  3. Silver Strike הגיב:

    [ללא נושא]
    בנתיים אתה מחזיר רק false. אתה צריך ליצור התנייה, מה לעשות כאשר הנתונים נכונים. (return true)

    <input type="submit" name="submit" value="השלם הצטרפות"  onclick="return verify();">

  4. prince01 הגיב:

    יש כמובן התנייה
    אבל עדין ישנה בעיה.
    במקרה של false, הנתונים עדיין ממשיכים לבצע את הפעולה שהוגדרה בaction.
    זה משגע אותי..
    אולי אני אצור הודעת שגיאה בדף קבלת הנתונים במידה וישנם שדות ריקים? יותר יעיל?

  5. BuildHome הגיב:

    ככה
    document.form1.submit(); => return true;

    <form action="page.asp" method="post" name="form1" onsubmit="return verify();">
    [הטופס]
    <input type="submit" name="submit" value="השלם הצטרפות">
    </form>
    אמור לעבוד חלק.

  6. prince01 הגיב:

    כן, בהחלט אמור לעבוד חלק
    אבל משום מה על השרת הזה זה לא עובד טוב בכלל.
    document.form1.submit();
    עושה פעולה זהה לreturn true ולכן אני לא מבין היכן הבעיה.

  7. BuildHome הגיב:

    ממש לא
    מה שכתבת שולח את הטופס, לעומת true שבעצם מאשר את שליחת הטופס.
    העובדה שאתה לא מחזיר ערך true/false פוגעת בתקינות הקוד ולא מאפשרת לו לפעול.

שלח תשובה

חדש! אחסון אתרים של וובמאסטר

שירות אחסון אתרים
המקצועי של וובמאסטר!

מומחים באירוח אתרי
WordPress, Joomla, Drupal

  • שרתי לינוקס עם CloudLinux, LiteSpeed
  • 1GB דיסק SSD, 10GB תעבורה חודשית
  • ממשק ניהול cPanel, תעודת SSL חינם

עכשיו במחיר היכרות:
רק 420 ש"ח לשנה!