733
צפיות
צפיות
35
תשובות
תשובות
מה לא תקין בפונקצייה הבאה?
יש לי טופס ובו שדה קלט ששמו מוגדר כ"Content" (<textarea name="content"</textare>.
כתבתי פונקציה בJS שתפקידה לבדוק כי הוקלד לפחות תו אחד לשדה הקלט, רק שהפונקציה לא עובדת…
זו הפונקציה שכתבתי:
<script language="javascript">
function FormChecker()
{
if (document.ContactUsForm.content.value.length !=0)
{
window.alert("לא הוזן תוכן הבקשה");
}
}
</script>
מה לא בסדר פה??
35 תשובות
ככה
if(document.ContactUsForm.content.value.length==0)
הגדרת אם מספר התווים שונה מאפס, כלומר שהוא כתב משהו ואז הצגת לו שגיאה לכתוב משהו. פה אתה צריך לראות אם מספר התווים שווה לאפס ולהציג את השגיאה.
תודה רבה זה עבד. שאלה נוספת…
גם כשפונקצית FormChecker מגלה בעיות, היא אמנם מתריעה בהודעה, אך לאחריה הדף נשלח בכל זאת לכתובת שמוגדת לו…
כך כתבתי את הפקודה לשליחת הטופס:
<a href="http://" onclick="FormChecker();"><img border="0" src="imagesSend.gif"></a>
ושאלה נוספת ברשותך…
איך אני מגדיר שבנוסף לכך שחייב להיות להיות תו אחד בשדה הקלט – עליו גם להיות מספר? (רצוי שגם מקפים יאושרו כדי שניתן יהיה לכתוב בשדה קלט של מס' טלפון את הקידומת ולאחריה מקף)
אתה צריך להוסיף return false
עליך להוסיף:
return false
אחרי שהפונקציה מגלה שיש בעיה בהזנה.
ורק כאשר הכל תקין:
return true
הנה דוגמה:
function checksubmit()
{
proj=document.TaskDet.project
type=document.TaskDet.ttype
//pass2=document.register.password2
if (proj.selectedIndex==0)
{
alert("Please select a project")
proj.focus
return false
}
if (type.selectedIndex==0)
{
alert("please select a task type")
type.focus
return false
}
//document.register.regok.value="ok"
return true
}
בתג ה – Form עליך להפנות לפונקציה
שבודקת את שליחת הטופס, ראה דוגמה
כמו כן עליך להוסיף בתג ה – Form את הקוד הבא:
<form name="TaskDet" method="post" action="AddTask.asp" onSubmit="return checksubmit(this)">
בעזרת RegExp
<input type="text" size="20" name="phone" id="phone" OnKeyPress="return (/[0-9-]/.test(String.fromCharCode(event.keyCode)));">
יאפשר להקליד אך ורק מספרים ומקף (-).
המספרים והמקף עבד. בפונקציה הסתבכתי
כתבתי כך את הפונקציה:
function FormChecker()
{
if(document.ContactUsForm.garage.value.length==0)
{
window.alert("לא הוזן שם המוסך");
return false
}
if(document.ContactUsForm.email.value.indexOf("@") == -1)
{
window.alert("כתובת אימייל שהוזנה אינה תקינה");
return false
}
if(document.ContactUsForm.Phone.value.length==0)
{
window.alert("לא הוזן מס' טלפון");
return false
}
if(document.ContactUsForm.content.value.length==0)
{
window.alert("לא הוזן תוכן הבקשה");
return false
}
if(document.ContactUsForm.garage.value="ok")
{
return true
}
if(document.ContactUsForm.email.value="ok")
{
return true
}
if(document.ContactUsForm.Phone.value="ok")
{
return true
}
if(document.ContactUsForm.content.value="ok")
{
return true
}
}
והפנתי את לחץ הסבמיט אליה כך:
<a href="AddTask.asp" onclick="FormChecker();"><img border="0" src="imagesSend.gif"></a>
אני יודע שההפנייה לדף הASP לא צריכה להיעשות בHREF פשוט לא ידעתי איך לעשות את זה…(אם אני עושה A ACTION אז הסמן של העכבר לא משתנה כאילו ה"שלח" הוא לינק כשעוברים עליו)
מה הבעיה בפונקציה?
חוץ מבעיה אחת שהיא ברורה. כדי להשוות נתונים כותבים פעמיים את הסימן שווה (=) ולא פעם אחת.
תעשה משהו כזה:
<img border="0" src="imagesSend.gif" style="cursor:hand;" OnClick="if(FormChecker()){location.href='AddTask.asp';};">
עכשיו זה לא שולח לדף הASP
הכל בעיקרון עובד מבחינת הפונקציה חוצמזה שכשכל הערכים מחזירים true – לחיצה על תמונת ה"שלח" לא גוררת שום תגובה…
לדעתי זה בגלל שבקוד הבא לא כתוב שאם כל הערכים בפונקציה מחזירים true לשלוח לדף המבוקש אלא רק אם הפונקציה..:
OnClick="if(FormChecker()){location.href='addTask.asp';};"
השורה צריכה לעבוד
קודם כל, הפונקציה שלך עובדת? זו בעיה בסיסית ביותר וחבל להתקע עליה.
קראת את המדריך במדור JS?
הפונקציה עובדת. אבל זה לא שולח לדף
כשאחד הערכים בפונקציה לא מחזיר "OK" אז היא באמת מתריעה על כך בהודעה ואי אפשר להמשיך הלאה עד שלא מתקנים מה שצריך. אבל הבעיה שאחרי שכל הטופס ממולא כמו שצריך, לחיצה על ה"שלח" פשוט לא גוררת שום תגובה…
כך כתובה הפונקציה:
function FormChecker()
{
if(document.ContactUsForm.garage.value.length==0)
{
window.alert("לא הוזן שם המוסך");
return false
}
if(document.ContactUsForm.email.value.indexOf("@") == -1)
{
window.alert("כתובת אימייל שהוזנה אינה תקינה");
return false
}
if(document.ContactUsForm.Phone.value.length==0)
{
window.alert("לא הוזן מס' טלפון");
return false
}
if(document.ContactUsForm.content.value.length==0)
{
window.alert("לא הוזן תוכן הבקשה");
return false
}
if(document.ContactUsForm.garage.value=="ok")
{
return true
}
if(document.ContactUsForm.email.value=="ok")
{
return true
}
if(document.ContactUsForm.Phone.value=="ok")
{
return true
}
if(document.ContactUsForm.content.value=="ok")
{
return true
}
}
וכך כתובה השורה של ה"שלח" (שאמרת שצריכה לעבוד):
<img border="0" src="imagesSend.gif" style="cursor:hand;" OnClick="if(FormChecker()){location.href='addTask.asp';};">
ולשאלתך אם קראתי את המדריך – קראתי ספר על הנושא שאני מאמין שנותן הסברים יותר מפורטים ומעמיקים מהמדריך 🙂
תבדוק איזה ערך מחזירה הפונקציה
FormChecker ותראה אם זה true/false.
למשל במקום משפט תנאי תעשה הודעת אלרט.
נפתרה הבעיה…עכשיו אחת חדשה…
היתה לי טעות קטנה שתיקנתי..
הבעיה החדשה היא שהגדרתי במסמך הCSS שכל הלינקים באתר יהיו בצבע לבן, ועכשיו יש לינק אחד שאני רוצה שיהיה בצבע אחר ואני לא מצליח לעשות זאת…ההגדרה בCSS "דורסת" כל מה שאני מנסה…
איך אני אמור לעזור?
מה עם קוד?
אתה יכול לתת לו class ולהחיל את…
השינויים עליו.
מצ"ב הקוד
לא בטוח שהבנתי מה היתה הכוונה עם class…
A:link {
COLOR: "white"
}
איך ניסית להגדיר לו צבע אחר?
<a href="https://www.webmaster.org.il" style="color:blue;">קישור בצבע כחול</a>
כאשר אתה מגדיר בורר ב-CSS…
אתה יכול להשתמש בשם האלמנט:
a:link {color:white;}
או בהפנייה ל-ID:
#linkage:link {color:white;}
או בהפנייה ל-class:
.linkage:link {color:white;}
הגדרת id ו-class בקוד ה-HTML:
<a href="" id="linkage" class="linkage"></a>
הדרך בה הגדרת את ה-CSS אינה נכונה. (ראה דוגמאות).
אני חייב לציין…
שאתם ממש תותחים…כל בעיה אתם פותרים לי…אני שואל את המורה שלי ועם כל הרצון הטוב שלה, כל דבר שנוטה לקצת מורכבות היא מסתבכת…
מה שכן עכשיו התחלתי ASP…נקווה לטוב…
מקווה שלא נמאסתי עם כל השאלות…
איך אני עושה שבמעבר עכבר על לינק הסמן לא ישתנה לאצבע המצביעה הזאת?
ואיך אני בוחר מה יהיה כתוב בשורת המצב במעבר עכבר על לינק?
שוב תודה..
אלה דברים בסיסיים ופשוטים
OnMouseOver="this.style.cursor='text';"
OnMouseOver="status='טקסט';return true;" OnMouseOut="status=";return true;"
כשלומדים Html, JS, ASP בחודש אחד…
אי אפשר לדעת כבר בשלב הראשוני את כל הדקויות בשפות הללו…
בכל מקרה, הסמן הופך לסמן של טקסט, ואני רוצה שהוא פשוט יישאר רגיל…סמן עכבר.
בקשר לשורת המצב לא הבנתי מה קשורים ה"return true" (ובכל מקרה זה לא עבד לי).
תשנה ל-default
הקוד הזה עובד 100%. הערך המוחזר הוא כדי בעצם באמת לבצע בעת האירוע.
עדיין לא עובד לי…
את הקוד יש להכניס בתגית <a> הבנתי נכון? אני הכנסתי ככה:
<a href="webmaster.co.il" OnMouseOver="status='לאתר וובמסטר';return true;" OnMouseOut="status=";return true;">וובמסטר</a>
סליחה זה הקוד שלא עובד
<a href="AE.html" OnMouseOver="status=";return true;" OnMouseOut="status=";return true;" target="_top" OnMouseOver="this.style.cursor='default';"><img border=0 src=Images/logo.jpg></A>
השורת מצב עובדת, אבל
הסמן עכבר הופך לאצבע המצביעה כשעוברים על התמונה
אתה רוצה שמעל כל הלינקים שאתה עוב..
עובר לא השתנה הסמן?
אם כן אז בהגדרת CSS של הקישור תוסיף את זה:
cursor:default;
זה ישאיר את סמן העכבר בצורת בררית המחדל שלו.
אני לא רוצה שזה יהיה בכל הלינקים…
רק בלינק ספיציפי
תשובה
עשית פעמיים OnMouseOver בקישור. שים לב מה אתה עושה ואל תעתיק – זו אף פעם לא הדרך הנכונה ללמוד.
אני אמור לכתוב כך?
<a href="AE.html" OnMouseOver="status=";return true; this.style.cursor='default';" OnMouseOut="status=";return true;"
כן
זה לא עובד…
ויש אולי דרך להגדיר בCSS שהשורת מצב לא תציג כלום??
עובד
אתה שואל שאלות בסיסיות מדי. כדאי שתפנה זמן ותלמד את מדריך ה-JS ו-CSS באתר.
אגב, התשובה בקוד שכתבת.
לא עובד
נראה לך שבאתי לשחק פה משחקים??
אני כותב את הקוד הבא ואמנם השורת מצב היא כמו שאני רוצה, אבל הסמן משתנה לסמן של לינק כשעוברים מעל הלינק:
<a href="AE.html" OnMouseOver="status=";return true; this.style.cursor='default';" OnMouseOut="status=";return true;">לינק</a>
אתה שואל שאלות בסיסיות ביותר
והקוד כן עובד, בדקתי בעצמי.
מומלץ שתפנה זמן ותקרא את המדריכים באתר ואז תבין הרבה יותר טוב את השילוב של JS עם CSS והשאר.