555
צפיות
צפיות
9
תשובות
תשובות
JS
למה הקוד הזה לא עובד?
<script type="text/javascript">
function logIn() {
If (document.forms.LoginForm.StrNickName.length>6)
{
alert("שם משתמש מעל שישה תווים");
return false
}
}
</script>
<FORM Name="LoginForm" ACTION="Connect.asp?Login_Mode=2" Method="post" onsubmit="return logIn();">
<INPUT NAME="StrNickName" TYPE="TEXT" STYLE="inputOne">
<INPUT TYPE="TEXT" NAME="StrPassWord" STYLE="inputOne">
<INPUT TYPE="submit" STYLE="inputOne" VALUE=" שלח ">
</FORM>
9 תשובות
תשובה
תנסה
document.LoginForm.StrNickName.value.length
:/
כתוב שבשורה הזאת:
If (document.forms.LoginForm.StrNickName.value.length>6)
בתוו הראשון דרוש אובייקט.
אתה מנסה לגשת אל הטופס בצורה שגויה.
תראה, אתה יכול לגשת לטפסים במסמך או לפי השם שלהם, או לפי המיקום שלהם באובייקט forms (ששיך לאובייקט document).
בשורה שאתה מקבל עליה את השגיאה, אתה מבצע מין שילוב מוזר של שתי השיטות – document.forms.LoginForm…
אם אתה משתמש ב document.forms, אתה צריך להתייחס ל forms כאל מערך שמחזיק את כל הטפסים שיש לך במסמך – כלומר, בהנחה וזה הטופס היחיד:
If (document.forms[0].StrNickName.value.length>6)
אם אתה מעדיף להגיע את הטופס לפי השם שלו, כמוני, אתה צריך לכתוב
If (document.LoginForm.StrNickName.value.length>6)
קאפיש?
עוד הבהרונת לגבי document.forms
כתבתי "בהנחה וזה הטופס היחיד", כשהייתי צריך לכתוב "בהנחה וזה הטופס היחיד או הראשון". אם זה הטופס השני במסמך, הגישה אליו תהיה, כמובן, בעזרת [
document.forms[1
עדיין כתוב דרוש אובייקט בשורה עם הif בתוו הראשון…
(בשתי השיטות..)
…
if!=If
תכתוב את המילה "if" באותיות קטנות.
JavaScript היא case-sensitive-language.
'סדר
בכלל לא שמתי לב