עבור לתוכן

בעיה בבדיקות תקינות לטופס

Featured Replies

פורסם

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

אחרי זה קראתי לאותה פונקציה לשדה נוסף ופתאום שום דבר לא עבד, כל הבדיקות תקינות לא עבדו.

מה זה יכול להיות ? אולי אי אפשר להשתמש באותה פונקציה לכמה שדות ?

פורסם

באיזה שפת תכנות?

ובלי לראות את הקוד אי אפשר לעזור לך

פורסם
  • מחבר

HTML

if (onlyletters(document.tofes.firstname.value)==false)
{
document.getElementById("div6").innerHTML="השם הפרטי לא יכול להכיל מספרים";
document.tofes.firstname.focus();
document.tofes.firstname.select();
valid = false;
}
if (onlyletters(document.tofes.lastname.value)==false)
{
document.getElementById("div7").innerHTML="שם המשפחה לא יכול להכיל מספרים";
document.tofes.lastname.focus();
document.tofes.lastname.select();
valid = false;
}


פורסם

אם אתה רוצה שנראה אם יש שגיאות בפונקציה אולי כדאי שתיתן את הקוד שלה....

פורסם
  • מחבר

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

הינה כל הקוד:

<html dir="rtl">
<head>
<style type="text/css">
table
{
font-family: arial, verdana, sans-serif;
font-size: 13px;
}

div
{
color: red;
}

</style>

<script language="javascript">

function onlyletters(word)
{
for (i=0; i<word.length; i++)
{
if (word.charAt(i)>='0' && word.charAt(i)<='9')
return(false);
return(true);
}
}

function equalPassword(pas1,pas2)
{
if (pas1!=pas2)
return(false);
return(true);
}

function equalemail(mail1,mail2)
{
if (mail1!=mail2)
return(false);
return(true);
}

function mailValid(mail)
{
var badST="!#$%^&*()+[]{}\,<>/?";
for (i=0; i<badST.length; i++)
{
var badChar=badST.charAt(i);
if (mail.indexOf(badChar)!=-1)
{
document.getElementById("div4").innerHTML='כתובת הדוא"ל מכילה תו לא חוקי';
return(false);
}
else
document.getElementById("div4").innerHTML="";
}
var shtrudel=mail.indexOf('@');
if (shtrudel<2)
{
document.getElementById("div4").innerHTML='כתובת הדוא"ל אינה מכילה שתרודל או שמיקומו בהתחלה';
return(false);
}
else
document.getElementById("div4").innerHTML="";

if (mail.split('@').length>2)
{
document.getElementById("div4").innerHTML='כתובת הדוא"ל מכילה יותר משתרודל אחד';
return(false);
}
else
document.getElementById("div4").innerHTML="";

return(true);
document.getElementById("div4").innerHTML="";

}

function checkForm()
{
var valid = true;

document.getElementById("div1").innerHTML="";
document.getElementById("div2").innerHTML="";
document.getElementById("div3").innerHTML="";
document.getElementById("div4").innerHTML="";
document.getElementById("div5").innerHTML="";
document.getElementById("div6").innerHTML="";
document.getElementById("div7").innerHTML="";

if (document.tofes.username.value.length<=3)
{
document.getElementById("div1").innerHTML="שם המשתמש חייב להכיל לפחות ארבעה תווים";
document.tofes.username.focus();
document.tofes.username.select();
valid = false;
}

if (document.tofes.pas1.value.length<=5)
{
document.getElementById("div2").innerHTML="הסיסמה חייבת להכיל לפחות שישה תווים";
document.tofes.pas1.focus();
document.tofes.pas1.select();
valid = false;
}

if (!equalPassword(document.tofes.pas1.value,document.tofes.pas2.value))
{
document.getElementById("div3").innerHTML="הסיסמאות אינן תואמות";
document.tofes.pas2.focus();
document.tofes.pas2.select();
valid = false;
}

if (mailValid(document.tofes.mail1.value)==false)
{
document.tofes.mail1.focus();
document.tofes.mail1.select();
valid = false;
}

if (!equalemail(document.tofes.mail1.value,document.tofes.mail2.value))
{
document.getElementById("div5").innerHTML='כתובות הדוא"ל אינן תואמות';
document.tofes.mail1.focus();
document.tofes.mail2.select();
valid = false;
}

if (onlyletters(document.tofes.firstname.value)==false)
{
document.getElementById("div6").innerHTML="השם הפרטי לא יכול להכיל מספרים";
document.tofes.firstname.focus();
document.tofes.firstname.select();
valid = false;
}

if (onlyletters(document.tofes.lastname.value)==false)
{
document.getElementById("div7").innerHTML="שם המשפחה לא יכול להכיל מספרים";
document.tofes.lastname.focus();
document.tofes.lastname.select();
valid = false;
}

if (valid == true)
window.alert("תודה שנרשמת");
return valid;
}
</script>

</haed>
<body bgcolor="#DCDCDC">

<form name="tofes" onsubmit="return checkForm()">
<table>

<tr><td colspan="3" bgcolor="#6495ED"><font size="2">שם משתמש וסיסמה</font></td></tr>
<tr><td width="150" align="left">שם משתמש: </td><td><input type="text" name="username" maxlength="20"></td><td width="300" align="left"><div id="div1"></div></tr>
<tr><td align="left">סיסמה: </td><td><input type="password" name="pas1" maxlength="20"></td><td align="left"><div id="div2"></div></td></tr>
<tr><td align="left">וודא סיסמה: </td><td><input type="password" name="pas2" maxlength="20"></td><td align="left"><div id="div3"></div></td></tr>
<tr><td colspan="3" bgcolor="#6495ED"><font size="2">כתובת דוא"ל</font></td></tr>
<tr><td align="left">כתובת דוא"ל: </td><td><input type="text" name="mail1" maxlength="20"></td><td align="left"><div id="div4"></div></td></tr>
<tr><td align="left">וודא כתובת דוא"ל: </td><td><input type="text" name="mail2" maxlength="20"></td><td align="left"><div id="div5"></div></td></tr>
<tr><td colspan="3" bgcolor="#6495ED"><font size="2">פרטים אישיים</font></td></tr>
<tr><td align="left">שם פרטי: </td><td><input type="text" name="firstname" maxlength="20"></td><td align="left"><div id="div6"></div></td></tr>
<tr><td align="left">שם משפחה: </td><td><input type="text" name="lastname" maxlength="20"></td><td align="left"><div id="div7"></div></td></tr>
<tr><td align="left">מין: </td><td><select name="min">
<option value="asd"> </option>
<option value="zahar">זכר</option>
<option value="nekeva">נקבה</option>
</td></tr>
<tr><td align="left">תאריך לידה: </td><td><input type="text" name="lastname" size="4" maxlength="4"> / <input type="text" name="lastname" size="2" maxlength="2"> / <input type="text" name="lastname" size="2" maxlength="2"></td></tr>


<tr><td colspan="3" bgcolor="#6495ED"><font size="2">על עצמי</font></td></tr>
<tr><td align="left">כינוי: </td><td><input type="text" name="hoby"></td></tr>
<tr><td align="left">תחום התעניינות: </td><td><input type="text" name="hoby"></td></tr>
<tr><td align="left">חבר בקבוצה: </td><td><input type="text" name="hoby"></td></tr>
<tr><td align="left">זמן אימון: </td><td><input type="text" name="trainingL"></td></tr>
<tr><td align="left">נעליים: </td><td><input type="text" name="shus"></td></tr>
<tr><td align="left">תרגיל אהוב: </td><td><input type="text" name="hoby"></td></tr>

</table>

<br><br><br>

<input type="submit" name="send" value="סיים הרשמה">
</form>

</body>
</html>

פורסם

בתור התחלה,שנה את

</haed>

ל

</head>

ותוסיף את זה בתוך הhead

<meta http-equiv="content-type" content="text/html; charset=windows-1255">

פורסם

כמו שחשבתי יש לך טעות בפונקציה, היה צריך להיות כך:

function onlyletters(word)
{
for (i=0; i<word.length; i++)
{
if (word.charAt(i)>='0' && word.charAt(i)<='9')
return(false);
}
return(true);
}

לגבי ה-encoding, עדיף לעבוד ב-utf-8 ולא ב-windows-1255 כמו שהומלץ לך מעלי.

פורסם

אם האתר בעברית,זה משנה?

פורסם

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

פורסם

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

פורסם
  • מחבר

כמו שחשבתי יש לך טעות בפונקציה, היה צריך להיות כך:

function onlyletters(word)
{
for (i=0; i<word.length; i++)
{
if (word.charAt(i)>='0' && word.charAt(i)<='9')
return(false);
}
return(true);
}

לגבי ה-encoding, עדיף לעבוד ב-utf-8 ולא ב-windows-1255 כמו שהומלץ לך מעלי.

אז לפי מה שכתבת זה רק לשים את TRUE מחוץ ל FOR - לא עובד !!

גם להוסיף את השורה הזאת - <meta http-equiv="content-type" content="text/html; charset=windows-1255"> - לא עזר.

פורסם

ElemenTal,בלי להעליב

הייתי מציע לך לקרוא ספר כמו HTML Utopia: Designing Without Tables Using CSS, 2nd Edition

(רמז:השורה לא קשורה לעבודה של הפונקייצת js שלך)

ואחרי זה הייתי ממליץ לך לקרוא ספר בphp\asp.net ועל אימות נתונים בצד שרת.

(רמז:אם המשתמש כיבה את הjs במחשב שלו,כל האימות שלך לא יעשה כלום.)

פורסם

מעבר לתיקון שכבר אמרתי קודם יש לך בטופס כמה שדות input שנקראים lastname ולכן זה לא מוצא את שם המשפחה כמו שצריך ולא עובד.

הדברים ש-genia מציע הם נכונים אבל לא דווקא קשורים ישירות לבעיה ששאלת עליה.

פורסם
  • מחבר

ElemenTal,בלי להעליב

הייתי מציע לך לקרוא ספר כמו HTML Utopia: Designing Without Tables Using CSS, 2nd Edition

(רמז:השורה לא קשורה לעבודה של הפונקייצת js שלך)

ואחרי זה הייתי ממליץ לך לקרוא ספר בphp\asp.net ועל אימות נתונים בצד שרת.

(רמז:אם המשתמש כיבה את הjs במחשב שלו,כל האימות שלך לא יעשה כלום.)

זה סך הכל עבודה במגמת מחשבים[br]פורסם בתאריך: 6.02.2009 בשעה 02:13:27


מעבר לתיקון שכבר אמרתי קודם יש לך בטופס כמה שדות input שנקראים lastname ולכן זה לא מוצא את שם המשפחה כמו שצריך ולא עובד.

הדברים ש-genia מציע הם נכונים אבל לא דווקא קשורים ישירות לבעיה ששאלת עליה.

תודה, עובד.

ארכיון

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

דיונים חדשים