שלח תשובה

זירת השאלות

651
צפיות
4
תשובות

פונקציית בדיקת טופס

,‏ 25 באפריל, 2004

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

  1. אוריקס הגיב:

    נא ליישר קוד לשמאל
    ולהראות קוד רלוונטי בלבד

  2. shira הגיב:

    אם יש קוד 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>

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

    כשאת לוחצת על הכפתור ליישור, נוספות לך 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>

    בהצלחה!

שלח תשובה