צפיות
תשובות
מצטער שאני מציף את הפורום בבעיות
פשוט אני צריך לסיים את הפרוייקט שלי בקרוב ואני נתקל במספר בעיות.
אני לא רוצה שהשדה ICQ שלי יהיה שדה חובה. עם זאת, אני רוצה שאם המשתמש הקליד משהו זה יבדוק אם הוא הקליד את המספר ICQ כמו שצריך (רק מספרים, בדיוק 9 ספרות וכו') .הנה הבדיקה:
if (icq.length !=9){
alert('מספר ICQ חייב להיות בדיוק 9 ספרות')
document.SignUp.ICQ.focus()
flag=false
return
}else{
if(isNaN(icq) == true){
alert("טעות בשדה ICQ.הקלדת אותיות היכן שצריך להקליד מספרים")
document.SignUp.ICQ.focus()
flag=false
return
}
}
עכשיו, אם המשתמש לא הקליד כלום בשדה ICQ זה עדיין יציג לא alert –> "מספר ICQ חייב להיות בדיוק 9 ספרות" כי הבדיקה שעשיתי זה אם השדה ICQשונה מ-9 הוא יציג אלרט ואם המשתמש לא הקליד כלום זה נחשב שונה מ-9 כמובן. מה לעשות? איך אני אוכל לגרום לכך שהתוכנית לא תציג אלרט אם המשתמש לא הקליד כלום…
19 תשובות
זהר פלד – כנס
פתחתי דף חדש בפורום וגם רשמתי התנצלות.
לפני כשבוע כמדומני עשית לי כמה תיקונים לבדיקת אי-מייל ולא ממש הבנתי אותם.
הנה הלינק:
ניסיתי להקפיץ את ההודעה אך ללא הצלחה.מקווה שתוכל לעזור.
אז ככה:
במצב שבו הנקודה האחרונה מופיעה מיד אחרי התו @, הערך של המשתנה intLastDotLocation יהיה הערך של המשתנה intLastDotLocation+1.
מכיון שאתה חייב לפחות תו אחד בין ה @ לנקודה שאחריו, הוספתי 2+.
עכשיו זה ברור?
מצטער על ההטרדה, אני לא רוצה להפריע
אבל מישהו מוכן להגיד לי מה לא טוב בסקריפט הזה?
sChar = Username.charAt(0)
if ((sChar<"A")||(sChar>"Z")) {
alert("שם המשתמש חייב להתחיל באות אנגלית")
document.SignUp.Username.focus()
flag=false
return
}
עשיתי את הבדיקה הזאת לשם משתמש שהאות הראשונה בשדה תהיה חייבת להיות אות אנגלית אז עשיתי את התחום שבין A ל -Z ואין לי מושג למה זה לא עובד.תודה מראש למי שיודע.
פחות או יותר אך לא 100%
אם תיתן דוגמא זה יהיה לי יותר ברור אם זה לא יהיה טרחה גדולה מדי.
הנה דוגמא.
הקובץ המצורף הוא אותו סקריפט, משופר במקצת.
הודעות השגיאה עכשיו יותר מפורטות, ואם תשים לב, תראה שבתנאי שלא ברור לך הוספתי עוד alert אחד, שאומר לך מה מכילים שני המשתנים שמופיעים בו.
נסה להכניס כתובת דוא"ל שבה הנקודה מופיעה מיד אחרי ה @, ונסה להכניס כתובת שבה מופיעה הנקודה תו אחד אחרי ה @.
רגע
"…יהיה הערך של המשתנה intLastDotLocation+1."
אתה בטוח שלא התכוונת כאן ל – intAtLocation?
התפלק לי ה copy הלא נכון ל paste…
אכן התכוונתי ל intAtLocation.
מה זאת אומרת "לא עובד"?
אתה חייב להבין שהתיאור "לא עובד" לא נותן לאף אחד שום משג על מה קורה כשאתה מנסה להפעיל את הפונקציה.
אם לא תתאר את מה שקורה באופן מדוייק, אי אפשר יהיה להבין מה קורה שם.
תודה רבה לך זוהר
הבנתי את זה בצורה מושלמת.
בעצם כנס
שוב הבדיקה:
sChar = Username.charAt(0)
if ((sChar<"A")||(sChar>"Z")) {
alert("שם המשתמש חייב להתחיל באות אנגלית")
document.SignUp.Username.focus()
flag=false
return
}
עכשיו תשמע, הבדיקה הזו פועלת ובודקת לי אם האות הראשונה היא אות .באנגלית יפה אבל רק אותיות גדולות באנגלית ולא קטנות. זה אולי ישמע מצחיק אבל כבר פתרתי לי את הבעיה, פשוט הוספתי את השיטה toUpperCase() ככה שכאשר המשתמש יקליד אות קטנה באנגלית("a") הוא ישר יהפוך אותה ל-
("A") ואז הבדיקה תהיה תקפה גם אם הוא הכניס אות שהיא קטנה באנגלית. עניתי לעצמי חחח
חומר תיאורטי
מישהו יודע מה עושה המילה השמורה javascript עם ":"
לדוגמא:
onclick="javascript:myFunction()"
מישהו יודע?
במקרה הזה, היא מיותרת.
השימוש בה צריך להיות, אם כבר, אך ורק בתור ערך של המאפיין href של לינק:
<a href="javascript:func()"> bla bla </a>
מה שהיא עושה בעצם זה אומרת לדפדפן שבמקום לגשת ל URL, הוא צריך לגשת לפונקציה של javascript שנקראת func.
ד"א, לא מומלץ להשתמש בלינק כדי לבצע דבר כזה. עדיף להשתמש במיכל כלשהו (span או div, לדוגמא) שיקרא לביצוע של javascript ב onClick. אם אתה ממש רוצה שזה יראה כמו לינק, זה לא בעיה בכלל ב css לגרום לתוכן של תג להראות כמו לינק.
בימינו…
עובדים עם דבר כזה רק בקישורים (למיטב ידיעתי)
כדי לקרוא לפונקציה דרך אירוע פשוט כותבים את שם הפונקציה עם סוגריים שבתוך הסוגריים (אם יש) כותבים פרמטרים מתאימים וזהו !!!
החלק העצוב בעניין,
הוא שלפי איך שנראה לי, לפחות, רוב השאלות שלך בפורום הזה הן כאלה שתוכל למצוא את התשובה להן לבד, אם רק קצת תטרח לחשוב.
אני אתן לך רמז.
השאלה שאתה צריך לשאול את עצמך היא "מה יגרום לדפדפן להתעלם לגמרי משני התנאים האלו, במידה ואין בכלל תוכן בתיבת הטקסט ICQ?"
אני מסכים איתך שהשאלה הספציפית
הזאת הייתה מיותרת
כנס!
אני יודע למה אתה מתכוון(אני חושב בעצם שאני יודע)
ככה:
if (icq == ""){
flag=true
return
}
ניסיתי את זה וזה לא עובד…
לא בדיוק אבל בערך.
בכלל, אני לא מצליח להבין את הרעיון של זה:
flag=true
return
כשאפשר פשוט לכתוב return true ולגמור סיפור בשורה אחת.
הכיון של תנאי הוא אכן נכון, אבל הכוונה שלי היתה טיפה אחרת:
// if the user entered an ICQ number
if(icq.length>0) {
if (icq.length !=9){
alert('מספר ICQ חייב להיות בדיוק 9 ספרות')
document.SignUp.ICQ.focus()
flag=false
return
}else{
if(isNaN(icq) == true){
alert("טעות בשדה ICQ.הקלדת אותיות היכן שצריך להקליד מספרים")
document.SignUp.ICQ.focus()
flag=false
return
}
}
}
תודה רבה זוהר
וה – flag=true/false
זה בשביל …
if (flag == true)
document.SignUp.submit()
}
לילה טוב