עבור לתוכן

עזרה בפונקציה וטופס HTML+JS

Featured Replies

פורסם

שלום.

במסגרת פרוייקט בבית הספר התבקשתי לרשום פונקציה שבודקת את הטופס ע"י onsubmit.

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

כאשר אני מריץ את הפונקציה וממלא את שדות הטופס ולוחץ על כפתור שלח זה לא נותן לי שום הודעת alert.

אני חושב שיש לי בעיה בפונקציה, אבל אני לא יודע מה.

מישהו יכול לעזור לי בבקשה.

תודה לעוזרים (:

הקוד:





<html>
<head>
<script type="text/javascript">
var msg = "";
function myfunc() {

var nick = document.tofes.nick.value;
var pass = document.tofes.password.value;
var pass1 = document.tofes.password1.value;
var mail = document.tofes.email.value;
var gen = document.tofes.gender.checked;
var shana = document.tofes.year.selectedIndex;
var hodes = document.tofes.month.selectedIndex;
var yom = document.tofes.day.selectedIndex;
var name1 = document.tofes.fname.value;
var name2 = document.tofes.lname.value;
var sahkan = document.tofes.player.value;


if (nick.length > 2) {
msg == msg 1;
}
else {
return false;


}


if ((pass.length > 6) || (pass1.length > 6) || (pass = pass1)) {
msg == msg 1;
}
else {
return false;


}


if ((mail.indexOf('@') != -1) || (mail.indexOf('.') != -1)) {
msg == msg 1;
}
else {
return false;


}




if (msg.length == 3) {
alert(nick);
msg = "";
return true;

}
else {
return false;
}





}


</script>
</head>
<body dir="rtl">
<form action="" name="tofes" method="post" onsubmit="return myfunc()">
שדות חובה: <br />
כינוי <input type="text" name="nick" id="nick" /> <br />
סיסמא <input type="text" name="password" id="password" /> <br />
סיסמא חוזרת <input type="password1" name="nick" id="password1" /> <br />
אימייל <input type="text" name="email" id="email" /> <br />
מין <br />
<input type="radio" name="gender" id="gender" value="male" /> זכר <br />
<input type="radio" name="gender" id="gender value="female" /> נקבה <br />


תאריך לידה <br />
<select name="year">
<option value="no_select">שנה</option>
<script language="javascript">
for (i = 1900; i <= 2011; i ) {
document.write("<option value='" i "'>" i "</option>");
}
</script>
</select>
<select name="month">
<option value="no_select">חודש</option>
<script language="javascript">
for (i = 1; i <= 12; i ) {
document.write("<option value='" i "'>" i "</option>");
}
</script>
</select>
<select name="day">
<option value="no_select">יום</option>
<script language="javascript">
for (i = 1; i <= 31; i ) {
document.write("<option value='" i "'>" i "</option>");
}
</script>
</select> <br />

שדות רשות: <br />
שם <input type="text" name="fname" id="fname" /> <br />
שם משפחה <input type="text" name="lname" id="lname" /> <br />
שחקן אהוב בקבוצה <input type="text" name="player" id="player" /> <br />
<input type="submit" name="submit" value="שלח" />
<input type="reset" name="reset" value="נקה" />



</form>
</body>
</html>




פורסם

מה אמורה לעשות השורה הזו?


msg == msg 1;

לא כל כך ברורים לי התנאים שלך. נראה לי שבלבלת בין = ו-==, וגם בין || ל-&&.

חוץ מזה, עדיף להימנע מדברים כמו:

var nick = document.tofes.nick.value;

עדיף להשתמש ב-document.getElementById במקום.

פורסם

או אם אתה מושך מודיע מטופס לרשום:

document.forms['tofes']['name'].value

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

את ההגדרת טופס תשנה ל:

<form name= "myForm">

<input name="submit" onclick = "myFunction();" value="Submit">

ה"פוסט" עושה לך ריפרש לעמוד והaction לא עוזר לך, הדרך הנכונה לפנות לפונ' JS היא דרך כפתור ה"שלח"

בJS, כל פעם שאתה עושה return הוא מחזיר את מה שהוא אמור ומפסיק את ריצת הפונ' כלומר לא ממשיך את הבדיקות ואז לא נבדקים לך כל השדות, אם זה מה שאתה מחפש סבבה, בד"כ מה שעושים זה לשמור את ערך השגיאה ואז רק בסוף להחזיר.

בנוסף יכול להיות שלא ראיתי אבל return לא מדפיס לך כלום תנסה במקום return לכתוב

alert ("msg")

או את הצירוף היותר נחמד: טאג HTML

<span id="err"></span>

and the JS

document.getElementById("err").innerHTML = "your bloody error";

בהצלחה

ארכיון

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

דיונים חדשים