צפיות
תשובות
בעיה בסקריפט לוידוא שדות בטופס
הסקריפט שלי בודק אם שדות הטקסט 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 תשובות
פשוט מאוד
תחזיר true או false מהפונקציה (אתה בינתיים מחזיר רק false) ותוסיף את בקשת הפונקציה בתגית הטופס ולא בכפתור השליחה:
onsubmit="return verify();"
לא מובן לי
.
במידה והשדות ריקים, הוא מחזיר אלרט וfalse. לא הבנתי איפה אני צריך לשנות
ואת הonclick העברתי לתגית הform כ-onsubmit.
עדין לא עובד 🙁
[ללא נושא]
בנתיים אתה מחזיר רק false. אתה צריך ליצור התנייה, מה לעשות כאשר הנתונים נכונים. (return true)
<input type="submit" name="submit" value="השלם הצטרפות" onclick="return verify();">
יש כמובן התנייה
אבל עדין ישנה בעיה.
במקרה של false, הנתונים עדיין ממשיכים לבצע את הפעולה שהוגדרה בaction.
זה משגע אותי..
אולי אני אצור הודעת שגיאה בדף קבלת הנתונים במידה וישנם שדות ריקים? יותר יעיל?
ככה
document.form1.submit(); => return true;
<form action="page.asp" method="post" name="form1" onsubmit="return verify();">
[הטופס]
<input type="submit" name="submit" value="השלם הצטרפות">
</form>
אמור לעבוד חלק.
כן, בהחלט אמור לעבוד חלק
אבל משום מה על השרת הזה זה לא עובד טוב בכלל.
document.form1.submit();
עושה פעולה זהה לreturn true ולכן אני לא מבין היכן הבעיה.
ממש לא
מה שכתבת שולח את הטופס, לעומת true שבעצם מאשר את שליחת הטופס.
העובדה שאתה לא מחזיר ערך true/false פוגעת בתקינות הקוד ולא מאפשרת לו לפעול.