2016-07-12 6 views
1

Ich versuche, das Wort, das ich schreibe, in meiner Suchleiste auf der Konsole erscheinen zu lassen, aber es scheint immer 'null' zu sein. Ich schaute mir die anderen Antworten an und es schien immer so, als ob es ein "onload" Problem wäre, was ich glaube nicht, da ich in meinem html bin, habe ich einen 'onload' für den Körper, was meine Einrichtung tut.Javascript - Uncaught TypeError: Eigenschaft 'onclick' von null (Suchleiste) kann nicht gesetzt werden

Das Setup macht Firebase verwandt, aber wenn ich die "btn.onclick = search" auskommentieren, wird es mir die "can not set -Eigenschaft 'onclick' für null" geben, auch wenn es eine Element-ID von ' btn 'im Code.

Also habe ich es in 'onMouseDown =' search() '' geändert, aber obwohl es den Testwert von 5 ausgibt, wird nichts als null von 'searchBar' ausgedruckt, obwohl der Wert drin ist ist automatisch "Suchen ...". Irgendeine Idee darüber, warum das passiert?

Html:

<body onload="setup()"> 
      <input type="text" id="searchBar" value="Search..." maxlength="30" autocomplete="off" onMouseDown="active();" onBlur="inactive();" /> 
      <button id="btn" onMouseDown="search();">Go</button> 

     <h1>featured</h1> 
     <ul id="featured_links"> 
     </ul> 
    </body> 

JS:

function setup(){ 
    initializeFirebase(); 
    var database = firebase.database(); 
    var featuredRef = database.ref("Featured/"); 
    var featured_ul = document.getElementById("featured_links"); 
    setupLunr(featuredRef, featured_ul); 

    //var btn = document.getElementById(btn); 
    //btn.onclick = search; 
    //createServer(); 
} 

function search(){ 
    console.log(5); 
    var inputHandle = document.getElementById(searchBar); 
    console.log(inputHandle.value); 
    // var tag = inputHandle.value; 
    // console.log(tag); 
    // index.search(tag); 
    //console.log(index.search(tag)); 
    // console.log(inputHandle); 

} 
+1

Übergeben Sie die richtigen Zeichenfolgen an getElementById()? Vielleicht fehlen Ihnen ein paar Anführungszeichen? ... document.getElementById ("btn") – chardy

Antwort

0

Da Sie nicht so etwas wie Uncaught ReferenceError: searchBar is not defined(…) bekommen, kann ich davon ausgehen, nur 'SearchBar' definiert irgendwo und haben einige unabhängige Wert darin.

Auf jeden Fall sollten Sie ändern:

var inputHandle = document.getElementById(searchBar); 

in

var inputHandle = document.getElementById("searchBar"); 

(Man beachte die Anführungszeichen)

EDIT: oh Sie BTN sprachen. trotzdem ist es das gleiche Geschäft, sollte es

var btn = document.getElementById("btn"); 

sein, es sei denn ‚BTN‘ ein Name eines var ist mit dem id Sie finden möchten.

+0

Ich hasse mein Leben. Vielen Dank. Die dümmste Stunde, die jemals verschwendet wurde – Homerdough

Verwandte Themen