it-swarm.com.de

.autocomplete ist kein Funktionsfehler

unten ist mein Mein Code

<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

Und mein HTML-Code ist

<div class="ui-widget">
<input name="searcharea" class="selectarea" id="searcharea" type="text" value="" placeholder="Area">
</div>

Und meine Funktion ist

<script>
$(function(){
    $( "#searcharea" ).autocomplete({
        source: "suggestions.php"
    });
    $( "#searchcat" ).autocomplete({
        source: "suggestions1.php"
    });
});
</script>

Ich habe diese Seite in eine separate Datei mit dem Suchcode meiner Website eingefügt und sie auf verschiedenen Seiten eingebettet. Auf meiner Indexseite werden Werte aus Quelldateien vorgeschlagen, auf anderen Seiten wird jedoch online ein Typerror angezeigt

$( "#searcharea" ).autocomplete({

Mein Website-Link lautet: http://www.jodhpuryp.in/

Dies ist die Quelle meiner Autosuggestion-Box http://api.jqueryui.com/autocomplete/

Kann mir jemand sagen, warum ich diesen Fehler auf anderen Seiten meiner Website erhalte, während er auf der Indexseite arbeitet. Jede Hilfe wird geschätzt. Danke

25
user2454340

Fand das Problem, ich fügte eine weitere Jquery-Datei für meinen Google-Übersetzer hinzu. Sie standen in Konflikt miteinander und führten dazu, dass die Autocomplete-Funktion nicht geladen wurde.

37
user2454340

Klingt nach Autovervollständigung, bevor die Bibliothek geladen wird, die definiert, dass sie tatsächlich geladen wird - wenn dies sinnvoll ist?

Wenn Ihr Skript inline ist und nicht referenziert wird, verschieben Sie es an das Ende der Seite. Oder (meine bevorzugte Option) platzieren Sie das Skript in einer externen .js-Datei und verweisen Sie darauf:

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script src="yourNewJSFile"></script>

Bearbeiten: Wenn Sie Ihr Skript externisieren, stellen Sie sicher, dass darauf verwiesen wird, nachdem alle JQuery-Bibliotheken verwendet wurden, auf die es sich bezieht :)

19
Krayg

Das ist peinlich, aber es hat mich eine Weile aufgehalten, also dachte ich, ich würde es hier posten.

Ich hatte keine jQuery-Benutzeroberfläche installiert, nur klassische jQuery, die (anscheinend) keine automatische Vervollständigung enthält. Durch das Hinzufügen der folgenden Tags wurde die automatische Vervollständigung über die jQuery-Benutzeroberfläche aktiviert.

<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">

und..

<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"</script>

Es ist zu beachten, dass der HTML-Wert autocomplete="off" Für das Formular oder den Formularblock die Ausführung der Methode .autocomplete() durch den Browser verhindert, die Funktion jQuery UI jedoch nicht blockiert.

6
BigTom

In meinem Fall hat mein anderes Teammitglied eine andere Version von jquery.js hinzugefügt, als er bootstrap.min.js hinzufügte. Nach dem Entfernen der zusätzlichen Datei "jquery.js" ist das Problem behoben

2
sky91

Wenn Sie nicht die gesamte Jquery-UI-Bibliothek verwenden, kann dies ausgelöst werden, wenn Widget, Menü, Position oder Kern fehlen. Abhängig von Ihrer Version der jQuery-Benutzeroberfläche können unterschiedliche Abhängigkeiten bestehen

1
Lotus

Ich habe diesen Fehler in ASP.net ausgeführt .. Wenn ich die Anwendung von Visual Studio aus ausführte, hat alles gut funktioniert, aber als ich das Projekt veröffentlicht und getestet habe, habe ich den Fehler "Autocomplete ist keine Funktion "in chrom Inspect debugger . Ich fand heraus, dass die Defizite zwischen zwei Umgebungen durch eine Definition in web.config verursacht wurden. im Kompilierungs-Tag. Wenn Assign debug = "false" ist, werden alle Bundel-Definitionen ausgeführt und die Kompilierung erfolgt als Release. Wenn debug = true "ist die Kompilierung für eine Debug-Phase, die keine Bündelung und Minifyning-Bibliothek von js enthält . Daher sind die Deferences zwischen den Umgebungen.

<system.web>
    <compilation debug="false" targetFramework="4.5.1"/>
    <httpRuntime targetFramework="4.5.1"/>
</system.web>

Bei der Untersuchung dieser beiden Umgebungen sah ich außerdem, dass für die Debug-Umgebung überall (_Layout.cshtml) @ Scripts.Render ("~/bundles/jquery") im Code war, wo (unter APP_Start) BundleConfig.cs
bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Static/js/lib/jquery-{version}.js", "~/Static/js/lib/jquery-ui.js"));

es riss als:

<script src="/Static/js/lib/jquery-1.12.4.js"></script>
<script src="/Static/js/lib/jquery-ui.js"></script>

und die andere Umgebung (debug = false)

<script src="/bundles/jquery?v=YOLEkbKJYtNeDq0o56xjzXWKoYzrF5Vkqgyc9Cb0YgI1"></script>

Im Debug-Modus funktioniert es und der andere hat das Problem gefunden.

Ich habe zwei Dateien von Jquery-ui gesehen:

jquery-ui.js jquery-ui.min.js

es stellt sich heraus, dass beide standardmäßig aus der Vorlage des neuen mvc-Projekts stammen. Wenn jquery-ui.min.js aus der Bibliothek gelöscht wurde, wurde das Problem gelöst.

Ich glaube, obwohl jquery-ui.js in BundleConfig.cs definiert wurde, wurde tatsächlich Jquery-ui.min.js genommen.

Übrigens enthielt jquery-ui.min.js keine Autocomple-Funktion, die jquery-ui.js zugeordnet war.

prost.

0
Zohar Chiprut

Sie rufen die Funktion auf, bevor die Seite jQuery lädt. Es ist immer ratsam, jQuery innerhalb von $ (document) .ready (function () {// Ihr Code hier

In Ihrem Fall:

$(document).ready(function(){
  $(function(){
    $( "#searcharea" ).autocomplete({
      source: "suggestions.php"
    });
   $( "#searchcat" ).autocomplete({
      source: "suggestions1.php"
    });
   });

});

0
Vicky Vishal

Meine Ausgabe endete damit, dass Visual Studio eine nicht behandelte Ausnahme feststellte und das Skript nicht weiter ausgeführt werden konnte. Da ich in der IDE lief, sah es so aus, als ob es ein Problem gab, als es nicht war. Autovervollständigung funktionierte einwandfrei. Ich habe einen Try/Catch-Block hinzugefügt, und das IDE war glücklich. 

 $.ajax({
            url: "/MyController/MyAction",
            type: "POST",
            dataType: "json",
            data: { prefix: request.term },
            success: function (data) {
                try {
                    response($.map(data, function (item) {
                        return { label: item.Name, value: item.Name };
                    }))
                } catch (err) { }

            }
        })
0
Sue

Wenn Ihre Seite einen Abschnitt für die folgenden Skripts enthält, vergewissern Sie sich, dass Sie sich in diesem Abschnitt auf Ihre Jquery-Bibliothek beziehen.

@section Scripts 
{ 
   <script src="~/Scripts/jquery-ui.js" type="text/javascript"></script>
} 
0
bobcatBisto

Ich hatte das gleiche Problem und versuchte es zu lösen, aber leider funktionierte es nicht mehr! Wenn Sie vor dem gleichen Problem stehen und keine Lösung finden, kann dies hilfreich sein.

Wenn Sie jquery/jquery-ui global im Webpack konfigurieren, müssen Sie die automatische Vervollständigung wie folgt importieren

import { autocomplete } from 'webpack-jquery-ui';

Und Sie müssen jquery-ui.css in den head-Abschnitt von html aufnehmen, ich verstehe nicht, warum es nicht ohne funktioniert!

<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">

Hoffe, Ihr Problem wird gelöst.

Und stellen Sie sicher, dass Sie die folgenden drei einschließen/installieren

  1. jquery-ui-css
  2. jquery-ui
  3. jquery
0
Robin

wenn Sie dieses Problem sehen, setzen Sie Ihre Autocomplete-Funktion immer in die Keyup-Funktion und stellen Sie sicher, dass Sie die Bibliotheken hinzugefügt haben 

$( "#searcharea" ).keyup(function(){
   $( "#searcharea" ).autocomplete({
      source: "suggestions.php"
   });
});
0
Naveen Roy