Bonjour à tous,

J'ai un soucis au niveau de mon contrôle "autocomplete", lorsque je tape quelques lettres dans le champs lié au contrôle je reçois ce message d'erreur dans la console de Firebug:

AutoComplete control error: url.indexOf is not a function
J'ai donc une erreur au niveau de mon fichier autocomplete.js...

Mais ce qui est bizarre, c'est que j'utilise le même contrôle, le même fichier et le même code dans une autre page, et là ça marche !

J'ai posté ma question sur Stack mais ça fait 2 semaines et je n'ai toujours aucune réponse

Pouvez-vous m'aider SVP ? Voici le code:

Create.cshtml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
@model TennisOnline.Models.Reservation
 
@{
    ViewBag.Title = "Create";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
 
<h2>Créer</h2>
 
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.js")" type="text/javascript"></script>
<link href="@Url.Content("~/Content/themes/base/jquery.ui.all.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/EditorHookup.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.autocomplete.js")" type="text/javascript"></script>
<link href="@Url.Content("~/Content/jquery.autocomplete.css")" rel="stylesheet" type="text/css"/>
 
 
//Appel de la fonction autocomplete
<script type="text/javascript">
    $(document).ready(function () {
        $("#Partner").autocomplete({ source: '@Url.Action("Name", "ReservationCalendar")' }, { minChars: 2 });
    });
</script>
 
@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
 
 
        <div class="editor-label">
            @Html.LabelFor(model => model.Date)
        </div>
        <div class="editor-field">
            @Html.DisplayFor(model => model.Date)
            @Html.ValidationMessageFor(model => model.Date)
        </div>
 
        <div class="editor-label">
            @Html.LabelFor(model => model.StartTime)
        </div>
        <div class="editor-field">
            @Html.DisplayFor(model => model.StartTime)
            @Html.ValidationMessageFor(model => model.StartTime)
        </div>
 
        <div class="editor-label">
            @Html.LabelFor(model => model.Double)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Double)
            @Html.ValidationMessageFor(model => model.Double)
        </div>
 
        <div class="editor-label">
            @Html.LabelFor(model => model.Customer.Name)
        </div>
        <div class="editor-field">
            @Html.DisplayFor(model => model.Customer.Name)
        </div>
 
        <div class="editor-label">
            @Html.LabelFor(model => model.Partner)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Partner)//Le contrôle est lié à cette entrée
            @Html.ValidationMessageFor(model => model.Partner)
        </div>
 
        <div class="editor-label">
            @Html.Label("Numéro du court")
        </div>
        <div c=lass="editor-field">
            @Html.DisplayFor(model => model.TennisCourt.Number)
            @Html.ValidationMessageFor(model => model.TennisCourt.Number)
        </div>
        <p>
            <input type="submit" value="Créer" />
        </p>
    </fieldset>
}
 
<div>
    @Html.ActionLink("Retour à l'index", "Index", new { id = Model.TennisClub.ID })
</div>

Controller

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//AutoComplete control that return the name and first name of the partner corresponding to "term"
        public ActionResult Name(string term)
        {
            int id = 0;
            var user = User.Identity.Name;
            int inter = int.Parse(user);
            var cust = from d in db.Customers
                           select d;
            cust = cust.Where(s => s.AffiliationNumber == inter);
            foreach (var customer in cust)
            {
                id = customer.TennisClub.ID;
            }
 
            var customers = (from c in db.Customers where (c.Name.Contains(term)) && c.TennisClub.ID == id select c.Name + ";" + c.FirstName).Distinct().Take(10);
            return Json(customers, JsonRequestBehavior.AllowGet);
        }

Pouvez-vous m'aider à trouver ce qui ne va pas SVP ? Merci d'avance