צפיות
תשובות
פונקציית בדיקת טופס
אני צריכה עזרה דחופה. בניתי פונקציה שבודקת טופס ומעבירה לדף ASP. הפונקציה עובדת טוב כששולחים משהו ריק. כששולחים מספרים מופיעה תיבת alert ולמרות שכתבתי בסקריפט return false הטופס בכל זאת מעביר את המספרים לדף ה-ASP מישהו יכול לעזור ? אני רוצה שכשיכתבו מספרים בטופס תהיה תיבת alert והטופס לא יעביר נתונים הלאה.
רצ"ב דף HTML:
<html>
<head></head>
<body>
<SCRIPT LANGUAGE="JavaScript">
<!–
function check()//פונקציה שבודקת אם השדות רקיים ומחזירה ערך בהתאם
{
var string=document.xxx.ll.value;
for (i=0;i<string.length;i++)
{if ((string.charAt(i)<'a' || string.charAt(i)>'z') && (string.charAt(i)<'A' || string.charAt(i)>'Z') && (string.charAt(i)<'א' || string.charAt(i)>'ת'))
{
alert ("enter 3 letters word");
return false;
}
}
return true;
}
//–>
</SCRIPT>
<FORM action="newaction2.asp" method="get" name="xxx" ><B>
<U><center>Search for a book:</center></U></B><BR><INPUT type=radio
value="author" name="col2"><B>By Author</B> <INPUT type=radio value="Title"
name="col2"><B>By Title</B> <BR>enter a word<INPUT type="text" name="ll">
<INPUT type="submit" value="go" onclick="check()" >
</form>
</body>
</html>
רצ"ב דף ה- ASP:
<html>
<% response.buffer=true %>
<head></head>
<body>
<%
dim a=Request.querystring("ll")
if a="" then%>
<%Response.redirect"form44.html"%>
<% else if IsNumeric(a)='1' then%>
<%Response.redirect"form44.html"%>
<% else %>
Welcome <%=Request.Querystring("ll")%>
<% end if %>
<% end if %>
</body>
</html>
4 תשובות
נא ליישר קוד לשמאל
ולהראות קוד רלוונטי בלבד
אם יש קוד ASP שמחליף עדיף עבורי
<html>
<head></head>
<body>
<SCRIPT LANGUAGE="JavaScript">
<!–
function check()
{
var string=document.xxx.ll.value;
for (i=0;i<string.length;i++)
{if ((string.charAt(i)<'a' || string.charAt(i)>'z') && (string.charAt(i)<'A' || string.charAt(i)>'Z') && (string.charAt(i)<'א' || string.charAt(i)>'ת'))
{
alert ("enter 3 letters word");
return false;
}
}
return true;
}
//–>
</SCRIPT>
<FORM action="newaction2.asp" method="get" name="xxx" ><B>
<U><center>Search for a book:</center></U></B><BR><INPUT type=radio
value="author" name="col2"><B>By Author</B> <INPUT type=radio value="Title"
name="col2"><B>By Title</B> <BR>enter a word<INPUT type="text" name="ll">
<INPUT type="submit" value="go" onclick="check()" >
</form>
</body>
</html>
ASP Page
<html>
<% response.buffer=true %>
<head></head>
<body>
<%
dim a=Request.querystring("ll")
if a="" then%>
<%Response.redirect"form44.html"%>
<% else if IsNumeric(a)='1' then%>
<%Response.redirect"form44.html"%>
<% else %>
Welcome <%=Request.Querystring("ll")%>
<% end if %>
<% end if %>
</body>
</html>
ההודעה יושרה, הבעיה אצלכם
את משתמשת בזה בצורה לא תקינה
קודם כל, קצת על יישור קוד לימין.
כשאת לוחצת על הכפתור ליישור, נוספות לך 2 תגיות: | הקוד | ו- | סקוד |. את הקוד שלך את צריכה להכניס בניהם ע"מ שהוא ייושר שמאלה.
הנה קסם:
Code
עכשיו עוד משהוא קטן על צורת שאלה בפורומים: אם את שואלת שאלה קטנטנה, ומביאה את כל הקוד שבעמוד שלך, מי שירצה לעזור לך יצטרך להשקיע המון זמן בקריאת והבנת הקוד (נדירים האנשים שבאמת יעשו את זה…). לשם כך שואל מתבקש להביא אך ורק את הקוד הרלוונטי לבעיה ולא את כל הקוד שבעמוד שלו.
עכשיו לעניינינו:
אם את עושה כפתור
<input type="submit" onClick="…"
מה שיקרה זה גם מה שב-onClick יתבצע, אבל גם ה-submit.
אם את רוצה לעשות בדיקה לפני השליחה, את יכולה להשתמש ב-2 דרכים:
******First Way:
<script language="JScript">
function fCheckForm(){
if(…)
return false
else
formName.submit()
}
</script>
<form …>
<input type="button" onClick="fCheckForm()" />
</form>
Second way (better one):
<script language="JScript">
function fCheckForm(){
if(…)
return false
}
</script>
<form … onSubmit="return fCheckForm()">
<input type="submit" />
</form>
בהצלחה!