עבור לתוכן

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

Featured Replies

פורסם

שלום לכולם אני מעוניים לבדוק תקינות של טופס על מחשב הלקוח על ידי סקריפט ב 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:

פורסם

קודם כל אני לא רואה פה אף קריאה לפונקציות שעשית ב JS

חוץ מזה כאשר אתה רוצה לקחת אובייקט HTML בעזרת JS תשתמש בצורה הבאה:

document.getElementById("THE NAME OF THE OBJECT").value=xxx

או להיפך

פורסם
  • מחבר

הוספתי את ה- 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 היא תמשיך כרגיל..

ארכיון

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

דיונים חדשים