אי שליחת הטופס עקב שימוש ב Regul...

shmueliko

New member
אי שליחת הטופס עקב שימוש ב Regul...

יש לי בעייה, יצרתי טופס פשוט של שתי שדות טקסט(שם משתמש וסיסמא) והשתמשתי ב RegularExpressionValidator כדי לאמת נתונים(ע"פ מאמר כאן). הבעייה היא שהטופס פשוט לא נשלח, כלומר הוא בודק האם הנתונים נכונים או לא אבל הוא לא מוכן לשלוח את הטופס, יש אפשרות לפתור את זה? זה הקוד של הטופס:
<form runat="server"> <asp:ValidationSummary ShowMessageBox=True ID="ValidationSummary1" runat="server" HeaderText="אנא טפל בשגיאות הבאות:" Displaymode=BulletList /> <center> <span id="Label1" style="color:Red;"><%=Request.QueryString("error")%></span><br /> <table cellpadding="0" cellspacing="0" style="WIDTH: 374px; border-collapse: collapse" width="374"> <tbody> <tr><td align="middle" colspan="2">כניסה </td></tr> <tr> <td>שם משתמש:</td> <td><asp:TextBox id="txtUser" runat="server"></asp:TextBox><asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" ControlToValidate="txtUser" ValidationExpression="[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]" text="*" errormessage="שם משתמש יכול להכיל רק אותיות באנגלית ומספרים" /></td> </tr> <tr> <td>סיסמא:</td> <td><asp:TextBox id="txtPass" runat="server"></asp:TextBox><asp:RegularExpressionValidator id="RegularExpressionValidator2" runat="server" ControlToValidate="txtPass" ValidationExpression="[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]" text="*" errormessage="שדה סיסמא יכול להכיל רק אותיות באנגלית ומספרים" /></td> </tr> <tr><td align="middle" colspan="2"><asp:Button id="cmdLogin" onclick="cmdLogin_Click" runat="server" Text="שלח"></asp:Button></td></tr> </tbody> </table> </center> </form>​
ב <script runat=server> יש אירוע בשם cmdLogin_Click שעושה את מה שעושה(לא קשור לכאן) תודה מראש, שמואל.
 

shmueliko

New member
ב..

ב"כאן" השני זה יצא בטעות, הכוונה לקוד ולא למאמר
 

gilad g

New member
../images/Emo5.gif

למה ה-Regexp שלך כ"כ מסובך? לא יותר פשוט לרשום:
[a-zA-Z0-9]​
לענינינו: האם מתבצע PostBack? האם אתה לוחץ על הכפתור, או פשוט לוחץ על Enter?
 

shmueliko

New member
אז ככה...

תיקנתי את ה Regexp. PostBack? תוכל להסביר מה זה בדיוק ואיך אני בודק את זה? בלחיצה או באנטר קורה אותו דבר. אבל גיליתי משהו מעניין אחר, כל הבעייה הזאת נוצרת רק בעת שימוש ב IE, כאשר אני משתמש בשואש אין לי את זה וגם קוד המקור שונה בין שני הגירסאות. קוד המקור שמתקבל מהשואש:
<form name="_ctl0" method="post" action="login.aspx" id="_ctl0"> <input type="hidden" name="__VIEWSTATE" value="dDwtMTMyMDAzNzkxNTs7Pudl04Flny3CDpzDiv5rw1QDVAPD" /> <center> <span id="Label1" style="color:Red;"></span><br /> <table cellpadding="0" cellspacing="0" style="WIDTH: 374px; border-collapse: collapse" width="374"> <tbody> <tr><td align="middle" colspan="2">כניסה </td></tr> <tr> <td>שם משתמש:</td> <td><input name="txtUser" type="text" id="txtUser" /> </td> </tr> <tr> <td>סיסמא:</td> <td><input name="txtPass" type="password" id="txtPass" /> </td> </tr> <tr><td align="middle" colspan="2"><input type="submit" name="cmdLogin" value="שלח" onclick="if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); " language="javascript" id="cmdLogin" /></td></tr> </tbody> </table> </center> </form>​
ומה IE:
<form name="_ctl0" method="post" action="login.aspx" language="javascript" onsubmit="if (!ValidatorOnSubmit()) return false;" id="_ctl0"> <input type="hidden" name="__VIEWSTATE" value="dDwtMTMyMDAzNzkxNTs7Pudl04Flny3CDpzDiv5rw1QDVAPD" /> <script language="javascript" type="text/javascript" src="/aspnet_client/system_web/1_1_4322/WebUIValidation.js"></script> <div id="ValidationSummary1" headertext="אנא טפל בשגיאות הבאות:" style="color:Red;display:none;"> </div> <center> <span id="Label1" style="color:Red;"></span><br /> <table cellpadding="0" cellspacing="0" style="WIDTH: 374px; border-collapse: collapse" width="374"> <tbody> <tr><td align="middle" colspan="2">כניסה </td></tr> <tr> <td>שם משתמש:</td> <td><input name="txtUser" type="text" id="txtUser" /><span id="REV1" controltovalidate="txtUser" errormessage="שם משתמש יכול להכיל רק אותיות באנגלית ומספרים" evaluationfunction="RegularExpressionValidatorEvaluateIsValid" validationexpression="[a-zA-Z0-9]" style="color:Red;visibility:hidden;">*</span></td> </tr> <tr> <td>סיסמא:</td> <td><input name="txtPass" type="password" id="txtPass" /><span id="REV2" controltovalidate="txtPass" errormessage="שדה סיסמא יכול להכיל רק אותיות באנגלית ומספרים" evaluationfunction="RegularExpressionValidatorEvaluateIsValid" validationexpression="[a-zA-Z0-9]" style="color:Red;visibility:hidden;">*</span></td> </tr> <tr><td align="middle" colspan="2"><input type="submit" name="cmdLogin" value="שלח" onclick="if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); " language="javascript" id="cmdLogin" /></td></tr> &nb​
 

shmueliko

New member
ומה שעוד יותר מוזר

זה שאם אני מריץ את ה from הנ"ל על המחשב שלי זה לא עובד(הבעייה שציינתי), ובאתר שלי זה כן עובד, מה שהעיר אותי לחשוב שאולי משהו לא בסדר במחשב שלי, אז הרצתי aspnet_regiis -i וזה הסתדר. תודה.
 
למעלה