בדיקת שדות בטופס על ידי JS - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

בדיקת שדות בטופס על ידי JS


dayornight

Recommended Posts

שלום לכולם אני מעוניים לבדוק תקינות של טופס על מחשב הלקוח על ידי סקריפט ב JS אבל אני לא מצליח

הנה קטע קוד שכתבתי


<form name="login" action="login.asp" method="get" OnSubmit="return check(this)">
îùúîù:
<br>

<input type="text" name="uid" size="14" maxlength="14">
<br>
ñéñîä:
<br>
<input type="password" name="psw" size="14" maxlength="14">
<br>
<input type="submit" name="send" value="äúçáø" >
<input type="reset" name="clean" value="ð÷ä">
<br>
<a href="register.htm" target="main"> ìäøùîä ìçõ ëàï</a>

</form>



<script language="javascript">
function checklength(form)
{
var s=form.uid.value;
var l=s.length;

if (l<6)
return (false);
else
return (true);
}


function valid(form)
{
var s=form.uid.value;
var l=s.length;

var i=0;

while ((i<l)&&(((s.chatAt(i)>="0")&&(s.chatAt(i)<="9"))||((s.chatAt(i)>="a")&&(s.chatAt(i)<="z"))
||((s.chatAt(i)>="A")&&(s.chatAt(i)<="Z"))))
i=i+1;
if (i==l)
return (true);
else
return (false);
}


function check(form)
{
if ((checklength(form))&&(valid(form)))
return (true);
else
{
form.uid.value="mistake";
return (false);
}
}

</script>

קטע הקוד אמור לבדוק האם השתמש כתב את כמות התווים המינמלית המותרת ובנוסף גם האם כל התווים הם מספרים או אותיות אנגליות

נ"ב

יש מספר קטעים בקוד שהוספתי בשביל למצוא מה מקור השגיאה אין צורך להתייחס אליהם

תודה מראש לעוזרים :s05:

קישור לתוכן
שתף באתרים אחרים

הוספתי את ה- DOCUMENT אבל איך אני קורא לפונקציה לא הבנתי את כוונתך הרי אמרתי בטופס שבזמן שליחה יפעיל את הפונקציה ויבדוק אם היא מחזירה אמת או שקר אתה יכול להסביר לי את כוונתך ? :nixweiss:

רציתי לשאול אותך בנוסף אם הפונקציה שבודקת אם התווים באנגלית או מספריים נכונה? נראה לי שגם בזה יש ל י טעות

קישור לתוכן
שתף באתרים אחרים

בלי להתעמק בזה יותר מדיי, יש לך שגיאה בסיסית בקריאה למשתנים מה-form.

בקצרה, הדרך הכי פשוטה היא לקרוא לפונקציה בצורה הזאת:

<form name="login" action="login.asp" method="get" OnSubmit="return check(this)">

ובפונקציות עצמן לעשות:



function checklength(form)
{
var s=form.uid.value;
var l=s.length;

if (l<6)
return (false);
else
return (true);
}


function valid(form)
{
var s=form.uid.value;
var l=s.length;

var i=0;

while ((i<l)&&(((s.chatAt(i)>="0")&&(s.chatAt(i)<="9"))||((s.chatAt(i)>="a")&&(s.chatAt(i)<="z"))
||((s.chatAt(i)>="A")&&(s.chatAt(i)<="Z"))))
i=i+1;
if (i==l)
return (true);
else
return (false)
;
}


function check(form)
{
if ((checklength(form))&&(valid(form)))
return (true);
else
{
form.uid.value="mistake";
return (false);
}
}

אני לא מבטיח שזה יעבוד, יכול להיות שיש עוד בעיות, אבל זה קודם כל..

נ.ב

אתה יכול כמובן לקרוא לזה גם דרך document.login.field וכו' במקום לעבוד עם אובייקט ספציפי לפונקציה ולקרוא לה עם this, אבל שים לב שאתה צריך להשתמש ב-"full path" הזה תמיד, בכל מקום.

נ.ב.ב...

אם נניח אתה רוצה להריץ את הפונקציה OnClick של כפתור כלשהו, ולא ב-OnSubmit של ה-form עצמו, תשתמש ב-check(this.form)

קישור לתוכן
שתף באתרים אחרים

עומרי, נראה לי שעשית לו עכשיו סלט שלם.

קודם כל אני מבין שאין לך מושג איך להפעיל את הפונקציות שכתבת ב JS. הרי לא מספיק לכתוב אותם צריך גם להפעיל אותם בזמן הנכון.

אני אף פעם לא השתמשתי בשיטה שהציע עומרי (אבל אני מניח שהוא יודע מה הוא אומר), בכל מקרה מה שעומרי כתב לך בשורה הראשונה

זה כאשר הטופס נשלח (כלומר לחצת על הכפתור שיצרת submit) הוא מפעיל את הפונקציה check.

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

אגב עומרי מה זה onSubmit ? אם מחזיר נכון ממשיך הלאה? ואם מחזיר לא נכון, מה קורה אז??

קישור לתוכן
שתף באתרים אחרים

ONSUBMIT אומר שבזמן שלוחצים על כפתור שליחה הוא בודק אם הערך של הפונקציה אמת או לא אם כן ממשיך בשליחה אם לא אז עוצר אותה

הסתבכתי לגמרי עם הפונקציה הזאת כבר היא שגעה אותי :pissed:

קישור לתוכן
שתף באתרים אחרים

OnSubmit זה טריגר שמופעל כשעושים.. הממ.. submit ל-form :P

היא לא תלויה בשיטה שגרמה ל-form לעבור submit.. זה יכול להיות כפתור, טיימר, תנאי ספציפי בג'אווה סקריפט שעושה form.submit.. מה שבא לך..

את OnClick אתה יכול לדחוף לכפתור ה-Submit למשל, או סתם לכפתור "Check form" כללי שלא עושה submit. אבל אז (בגלל שה-this מפנה לכפתור הספציפי, ואתה רוצה לעבוד על כל ה-form), אתה צריך לקרוא ל-this.form.

אם זה יחזיר false השליחה של ה-form תבוטל. ב-true היא תמשיך כרגיל..

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...