בעיה בשימוש ב Jquery autocomplate
-
אני משתמש ברכיב ההשלמה האוט' של Jquery-UI
אך משום מה התצוגה של ההשלמה לא פועלת טוב, דהיינו זה נראה כך:
כלומר, הוא מחזיר את התוצאות ואפי' רואים 4 שורות קטנות מתחת לתיבת הטקסט שנוצרות בגלל זה, אך משום מה זה לא מוצג בצורה נורמלית ולא רואים את התוכן...
כתבתי את הקוד כך:$(document).ready(function () { $("#search").autocomplete({ source: "/Customers/SearchTag" }); }); ובשרת את הקוד הבא:
public ActionResult SearchTag(string term) { var tag = db.Customers.Where(a => a.FirstName.Contains(term) || a.LastName.Contains(term)).ToList(); return this.Json(tag, JsonRequestBehavior.AllowGet); } אולי זה נובע מחמת שJqueyUi משתמשים בספריית css משלהם, ובפרוייקט שלי מצורפת גם ספריית Bootstrap דבר שמביא לתוצאה הזו, או שאין לכך קשר?
תודה רבה!
פורסם במקור בפורום CODE613 ב04/11/2015 10:38 (+02:00)
-
לא אמור להיות קונפליקט בין ה CSSים, הקודים שהבאת לא רלווונטיים לשאלה.
אם יש לך אפשרות להעלות fiddle יהיה הכי טוב, באופן כללי שאלות js עדיף להביא fiddleפורסם במקור בפורום CODE613 ב04/11/2015 15:14 (+02:00)
-
לא אמור להיות קונפליקט בין ה CSSים, הקודים שהבאת לא רלווונטיים לשאלה.
אם יש לך אפשרות להעלות fiddle יהיה הכי טוב, באופן כללי שאלות js עדיף להביא fiddleאז מה אני אמור להביא בfiddle?
פורסם במקור בפורום CODE613 ב04/11/2015 15:16 (+02:00)
-
הנה כאן יש קישור.
אם כי אני לא מבין כיצד זה יעזור לך.. שהרי זה לא יכול לעבוד בלי שיש שרת שמחזיר את תוצאות ההשלמה..
תודה רבה!פורסם במקור בפורום CODE613 ב04/11/2015 15:28 (+02:00)
-
הנה כאן יש קישור.
אם כי אני לא מבין כיצד זה יעזור לך.. שהרי זה לא יכול לעבוד בלי שיש שרת שמחזיר את תוצאות ההשלמה..
תודה רבה!https://jsfiddle.net/7LbquL8c/1/
פורסם במקור בפורום CODE613 ב05/11/2015 10:51 (+02:00)
-
:shock: :shock: :shock:
מאיפה הוא מביא תוצאות נוספות בעברית??פורסם במקור בפורום CODE613 ב05/11/2015 14:30 (+02:00)
-
אגב, אברהם
יש לי לומר לך מילה אחת:
בלע"ה!פורסם במקור בפורום CODE613 ב05/11/2015 15:36 (+02:00)
-
@דוד ל.ט.
אם כי אני לא מבין כיצד זה יעזור לך.. שהרי זה לא יכול לעבוד בלי שיש שרת שמחזיר את תוצאות ההשלמה..
תודה רבה!משום מה זה לא עובד לי..
זה לא מחזיר שום תוצאות :? :? :?פורסם במקור בפורום CODE613 ב05/11/2015 19:34 (+02:00)
-
יש שם הפניה רק ל jquery ואין ל jquery-ui
פורסם במקור בפורום CODE613 ב05/11/2015 19:56 (+02:00)
-
אז מדוע אצלי ואצל דוד זה כן עובד?
פורסם במקור בפורום CODE613 ב05/11/2015 20:18 (+02:00)
-
לא יודע, אצלי עובד רק ככה https://jsfiddle.net/7LbquL8c/5/
פורסם במקור בפורום CODE613 ב05/11/2015 20:44 (+02:00)
-
מה שעדיין לא הבנתי זה מדוע אצלי בתכנית זה לא עובד..
אין לי עניין להגדיר מראש את הערכים, שהרי אני רוצה שההשלמה האוט' תהיה מהJSON שמגיע מבסיס הנתונים..פורסם במקור בפורום CODE613 ב05/11/2015 22:12 (+02:00)
-
כדי לעשות הבחנה מבדלת מה שורש הבעיה, השתמש תחילה ברשימת ערכים קבועה ובדוק אם ההשלמה האוטומטית עובדת
אם היא עובדת החלף את הערכים הקבועים בערכים ממסד הנתונים והמשך לבדוק באיזה שלב חל השיבושפורסם במקור בפורום CODE613 ב05/11/2015 22:24 (+02:00)
-
הסיבות יכולות להיות מגוונות
הכי קל זה אם אתה מעלה fiddle שעובד ומציג את הבעיה
אם לא תעלה את האתר לאוויר ותן אליו לינק או שתעלה את כל הסולושן
רעיונות נוספים מישהו?פורסם במקור בפורום CODE613 ב05/11/2015 22:26 (+02:00)
-
כדי לעשות הבחנה מבדלת מה שורש הבעיה, השתמש תחילה ברשימת ערכים קבועה ובדוק אם ההשלמה האוטומטית עובדת
אם היא עובדת החלף את הערכים הקבועים בערכים ממסד הנתונים והמשך לבדוק באיזה שלב חל השיבושבעיקרון אתה צודק רק שהוא אומר שהבעיה היא בעיצוב כי רשימה עם הערכים כן נפתחת לו רק מכווצת באופן מוזר
פורסם במקור בפורום CODE613 ב05/11/2015 22:27 (+02:00)
-
בדקתי זאת שוב כמו שרחמים אמר.. ואכן את הרשימה המוגדרת מראש הוא מחזיר יפה.
כנראה שאכן הבעיה היא בקוד של צד השרת.
בשורה הזאת הוא מקבל את הנתונים:var tag = db.Customers.Where(a => a.FirstName.Contains(term) || a.LastName.Contains(term)).ToList();
וזה עובד טוב, הנתונים חוזרים בצורה של ליסט.
אח"כ הוא מחזיר אותם בתור JSONreturn Json(tag, JsonRequestBehavior.AllowGet);
אם אני מבין נכון הבעיה היא שהDB מחזיר אובייקטים שלמים שבהם מופיעה האות הנדרשת בתור שם משפחה/פרטי, ואח"כ הוא ממיר אותו לJSON,
אבל התצוגה צריכה להציג רק את השם משפחה/פרטי והווידג'ט של ההשלמה האוט' של JQUERY לא יודע לעשות זאת, כיון שהוא לא יודע לבד מאיזה שדה אני רוצה להציג את הנתונים..פורסם במקור בפורום CODE613 ב06/11/2015 12:09 (+02:00)
-
הוספתי את הקטע הזה, כדי ליצור מחרוזת רק עם השם הפרטי ושם המשפחה, ואכן זה עובד מעולה!!
List<string> list = new List<string>(); foreach (var item in tag) { list.Add(item.FirstName + " " + item.LastName); } return Json(list, JsonRequestBehavior.AllowGet); תודה רבה
פורסם במקור בפורום CODE613 ב08/11/2015 00:41 (+02:00)
10/19