MsgBox עם אפשרויות

NewName

New member
MsgBox עם אפשרויות

בVb.Net, יצרתי MsgBox בעזרת JavaScript - עם שני כפתורים. השאלה שלי היא איך אני יכול להשתמש במדיע שנקלט. כלומר איך אני בודק איזה כפתור נלחץ?
 

NewName

New member
../images/Emo4.gif

בזה אני יכול להשתמש כשאני משתמש בפונקציה MsgBox, של VB. אבל אני לא.. אני משתמש בJavaScript - בAlert.
 

yuval k

New member
אז אתה צריך להשתמש ב-confirm

כמו שנכתב. (הערה קטנה: היה צריך להיות כתוב ==, כי אחרת זו לא השוואה אלא השמה)
 

asafeven

New member
בעייתי

אני הצלחתי לעשות את זה רק ששיניתי value של hidden ב-javascript ותפסתי את האירוע ב-codbehind אבל אולי יש דרך יותר אלגנטית
 

NewName

New member
אתה יכול בבקשה לפרט?

גם דרך לא אלגנטית תתקבל בברגה
 

adam222

New member
תעשה

שדה HIDDEN שהוא Runat=Server תזין לו ערך ב-JS ובפוסט-בק תקבל אותו... ממש פשוט
 

NewName

New member
דווקא את זה ניסיתי לעשות..

מצאתי הצעה לעשות את זה באחד הפורומים בגוגל.. אבל הוא עוצר ואומר שהשדה הזה undefined - וכן הגדרתי אותו.. מה פספסתי?
 

NewName

New member
../images/Emo10.gif

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

NewName

New member
מראה קוד...

בחלק הHTML הגדרתי את השדה ככה: <input type="hidden" id="bbb" runat="server"> בVB הגדרתי ככה:
Protected bbb As System.Web.UI.HtmlControls.HtmlInputHidden​
והנה הקוד עצמו:
Dim jscript As String jscript = ("<Script language=""javascript"">var x=confirm(""This is my test"");") jscript &= ("if (x ==1) bbb.value=1") jscript &= ("</script>0") RegisterClientScriptBlock(x, jscript)​
מאד מקווה שתוכלו לעזור לי
 

yuval k

New member
הממ

ל-input אתה צריך לגשת ע"י document.getElementById, כך שהשורה צריכה להיות -
jscript &= ("if (x ==1) document.getElementById('bbb').value=1")​
 

NewName

New member
>>>>

ניסיתי. כשכתבי בדיוק איך שאתה כתבת קיבלתי הודעת שגיאה: Microsoft JScript runtime error: 'document.getElementById(...)' is null or not an object חשבתי שאולי טעית בsyntax וחיפשתי בגוגל, ובאמת מצאתי מקומות שכתבו בהם את השם של של הelement בלי הגרשיים. ניסיתי את זה, ואז קיבלתי שגיאה אחרת - object not defined
 

yuval k

New member
כמובן שזה object not defined

אני העברתי מחרוזת, לכן נתתי גרשיים. ללא הגרשיים, הוא מתייחס לזה כאל אובייקט (שכמובן לא קיים, עבורו). שכחתי פרט קטן (אני לא עובד עם webforms כ"כ) - הפקדים מקבלים ID-לקוח שונה ממה שסיפקת, ע"י ה-runtime. שנה את הקוד ל-
jscript &= "if (x ==1) document.getElementById('" & bbb.ClientID & "').value=1"​
אגב, היה יותר יעיל להשתמש ב-StringBuilder כדי ליצור את המחרוזת הזו.
 
ה - JS צריך להיות בסוף העמוד

אם ה - JS ממוקם בתחילת עמוד ה - HTML האובייקט עוד לא קיים כשהקוד רץ. זה כי הקוד רץ לפני שהעמוד נבנה ע"י הדפדפן. אם מתקם את הקוד בסוף העמוד - האובייקט יהיה מוכר.
 
למעלה