Uncaught TypeError: Object #<Object> hat keine Methode 'autocomplete'
Hab ich ein problem und ich hoffe, Euch kann mir helfen es zu lösen.
Habe ich diese Funktion, in der ich wollen, verwenden von AutoVervollständigen. Mit der Hilfe unten, konnte ich mich um den Fehler zu entfernen aber jetzt ist es funktioniert einfach nicht bei der Verwendung von Ajax. Wie ich schon schrieb, die Unterseite Skript (inbox.php) geladen ist innerhalb des oberen Skript (home.php).
Fand ich heraus, dass die autocomplete-script funktioniert, wenn ich öffnen Sie die Seite separat (also nur zu localhost/inbox.php), aber wenn man durch Ajax, verliert Sie diese. Das ist, warum ich jetzt denken, dass das problem in der Ajax-Skript, die an den letzten Teil der Beispiele.
home.php (Hauptseite)
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="homeV2.css" type="text/css" media="screen">
<script type="text/javascript" src="javascript/index.js"></script>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.6.4.js'></script>
<script type='text/javascript' src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.10.0/jquery-ui.min.js"></script>
<link rel="stylesheet" type="text/css" href="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.10.0/themes/black-tie/jquery-ui.css">
<title>
Homepage Westpop Intranet
</title>
<script>
window.onload = function()
{
showHome(<?=$gid?>);
refreshChat();
countdown();
}
</script>
</head>
inbox.php (diese Seite ist geladen innen home.php mit Ajax)
<script type="text/javascript">
var names = ['hi', 'bye', 'foo', 'bar'];
$(document).ready(function() {
$("#inputNaam").autocomplete({
source: names
});
});
</script>
............ //some other script
</div>
</div>
<div id='profielNieuwBericht'>
<div id='nieuwBerichtKop'>
Nieuw bericht
</div>
<table>
<tr>
<td>Aan: </td>
<td><input type='text' class='inputNieuwBericht' id='inputNaam' /> </td>
</tr>
<tr>
<td> Onderwerp: </td>
<td> <input type='text' class='inputNieuwBericht' id='inputOnderwerp' /></td>
</table>
<textarea id='BerichtTextarea'></textarea></br>
<input type='button' id='BerichtManagementButton' value='Stuur' />
</div>
</div>
Und das ist der Ajax-Teil. Dieses Skript wird aufgerufen, wenn auf eine Schaltfläche in home.php (link nicht im Lieferumfang enthalten, aber ist aufgerufen, durch onClick='showInbox(id)').
function showInbox(id){
if (id==''){
document.getElementById("middenpag").innerHTML="";
return;
}
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("middenpag").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","inbox.php?id="+id,true);
xmlhttp.send();
}
Ich hoffe, Sie Jungs können sehen, was mache ich hier falsch!
Danke 🙂
- Keine screenshots. Poste bitte den code nach den Richtlinien!
- Warum sind Sie inklusive 2 verschiedenen jquery-Bibliotheken, 1.3.0 und 1.6.4?
- warum sind Sie das laden der jquery zwei mal. zunächst ist 1.3.0 und die zweite ist 1.6.4????!!!!!!!!!!
- Sorry, du hast Recht, Jungs. Aber es hat das problem nicht lösen 🙁
- Der AJAX-code, den Sie geschrieben scheint nicht für die Interaktion mit profiel.php. Es sei denn, inbox.php includes/Echos profiel.php irgendwie... Kannst du wieder ein update, wie das Teil funktioniert? Auch haben Sie versucht, mit einer jQuery.load() aufrufen, statt das XMLHttpRequest-code, den Sie haben?
- Oh... Tippfehler!.. es sollte inbox.php nicht profiel.php... einen Fehler Gemacht, denn Posteingang im Profil-Teil. Nun, es ist richtig, vergessen profiel.php 😛
- Über die jQuery.load().. ich wirklich brauchen, Ajax, denn ich brauche viele Sachen aus einer Datenbank (und damit mit PHP+SQL). Ich habe nicht gehört, dass in dieser Frage, denn ich glaube nicht, dass das relevant ist. Die autocomplete-script funktioniert, aber eben nicht nach Ajax aufgerufen wurde.
- Zufällig, ich kam gerade über '.live()'. Ich bin nicht sicher, es ist das, was ich Suche, und, um ehrlich zu sein, verstehe ich nicht wirklich die Verwendung von diesem code. Von dem, was ich verstehe, es sieht aus wie es ist eine mögliche Lösung. Bin ich rechts vielleicht?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als die Kommentare gerufen haben, zählen Sie nicht mehr als eine jQuery-Bibliothek. Wählen Sie die version, die Sie wollen/brauchen und auch benutzen. Sie sind einschließlich der jQuery-ui version 1.10.0, das ist in der Tat die neueste und nur kompatibel mit jQuery-core 1.6+, so nehmen Sie Ihre 1.3.0 enthalten.
Sind Sie aufrufen der benutzerdefinierten
autocomplete()
Methode definiert home.php aus deronkeydown
inline-event. Dies ist unnötig, wie die gesamteautocomplete()
Methode, die Sie deklariert haben. Von der basic autocomplete Beispiel, der einzige code, den Sie tun müssen, ist die folgende:profile.php html -
In deinem Beispiel, sehe ich Sie auch verpasst dem schließenden tag auf das input-element. Auch, wenn Sie die übermittlung dieser als Teil einer form, die Sie gehen zu wollen, füllen Sie das
name=''
Attribut für Ihre Eingaben, oder das server-Skript für die Verarbeitung des Formulars nicht möglich sein, die Variablen aus der Anfrage.javascript array-Deklaration - wenn Sie nur mit diesem in profile.php dann setzen Sie es dort. Wenn Sie die Wiederverwendung der gleichen AutoVervollständigen-Optionen, die zwischen den verschiedenen Dateien enthalten, dann legen Sie es in home.php. Oder legen Sie Sie in einem separaten .php-Datei, die Sie
include_once
es aus welcher Datei endet es.javascript autocomplete-Bindung - nur einmal pro "AutoVervollständigen" verwenden Sie die
document.ready
handler, und versuchen Sie nicht, verwenden Sie es mit dem onkeydown-inline-event.Ist und du bist fertig. Schließlich, wie andere auch erwähnt werden, poste keine screenshots von deinem code. Kopieren/fügen Sie den code ein, der eingerückt, so dass es Formate, wie code und geben Sie an, welcher Zeile tritt der Fehler auf. Auch Sie sollten enthalten den code, wo profile.php bekommt enthalten. Deine Beschreibung, wie es funktioniert, ist nicht ausreichend.
Dies könnte ein iFrame, php include oder require, eine beliebige Anzahl von javascript/ajax geladen etc., alle haben unterschiedliche Konsequenzen für Sie, wie der code würde arbeiten müssen.
ja, ich habe eine Lösung von diesem problem.
In meinem Programm, das problem ist doppelte jquery in Vorlage.tpl Datei
Ich neue hinzufügen, jquery.min.js für AutoVervollständigen in meinem template,
und ich fand problem, dass (.. bla bla Objekt#() keine Methode,... ), und der Punkt des Problems ist dieses ...
also ich deaktivieren Sie den link, und Alhamdulilah es funktioniert.
Ich hoffe , nützlich sein kann