באג בשימוש בValidator ?
אני משתמש בRequiredFieldValidator בשביל שדה מסוים בטופס שלי. כאשר אני קובע את EnableClientScript לtrue, אז אני יכול לראות, באמצעות view source, שהוא מוסיף שורה בonsubmit לform element שלי שאוכף את הבדיקה הרצוייה כבר בצד לקוח. מה שכן, אפשר לראות שם משהו כזה:
אני משתמש בRequiredFieldValidator בשביל שדה מסוים בטופס שלי. כאשר אני קובע את EnableClientScript לtrue, אז אני יכול לראות, באמצעות view source, שהוא מוסיף שורה בonsubmit לform element שלי שאוכף את הבדיקה הרצוייה כבר בצד לקוח. מה שכן, אפשר לראות שם משהו כזה:
<form name="Login" method="post" action="Login.aspx" language="javascript" onsubmit="if (!ValidatorOnSubmit()) return false;" id="Login">
מבדיקה קצרה שערכתי בexplorer שלי (IE6 על windows xp sp1), ראיתי שלא משנה מה קורה - אף פעם לא מתבצע Postback חזרה לצד שרת, גם אם הtextbox(נניח) שהvalidator אוכף אכן מלא, כנדרש. כשהעתקתי את הקוד הצידה ושיניתי את השורה ל:<form name="Login" method="post" action="Login.aspx" language="javascript" onsubmit="return ValidatorOnSubmit();" id="Login">
אז הקוד עבד כנדרש, כלומר רק במידה והtextbox היה ריק, הייתי מקבל את השגיאה ונשאר אצל הלקוח, אחרת - הייתי עולה לשרת. אפשרות נוספת להוסיף לקוד משהו כמו |קוד| if (!ValidatorOnSubmit()) return false; else return true; גם זה כמובן היה עובד. הבעיה היא שהקוד הרי מחולל בשבילי באמצעות הRender של הפקד של הvalidator ואין לי שליטה עליו (יכולה להיות לי, באמצעות ירושה, אבל זה פיתרון עקום, כי הvalidator-ים אמורים לעבוד כנדרש). מישהו יודע מה קורה כאן ? אולי הגדרות של הIE ? (ניסיתי גם לשחק שם ללא הצלחה)