2012-05-29 5 views
5

html:jQuery. Erhalten Sie den Wert des Texteingabefelds beim Klicken auf ein Ereignis?

<div id="search"> 
    <input id="term" type="text" value="enter your search" /> 
    <button id="hit" type="button" name="">Search</button> 
</div> 

jQuery:

$(document).ready(function() { 
    var term = $('#term').val(); 
    $('#hit').click(function() { 
    alert(term); 
    }); 
}); 

Das Problem ist, dass, egal was ich in dem Eingabefeld eingeben, dann den Knopf drücken, alarmieren sie immer den ursprünglichen Wert Eingang, der "ist Gib deine Suche ein ".

Wie kann ich es beheben?

Antwort

15

Das Problem, das Sie haben, ist, dass dieser ganze Codeblock auf dem DOM-bereiten Ereignis ausgeführt wird.

var term = $('#term').val(); wird nur einmal ausgewertet und speichert 'Geben Sie Ihre Suche' in der Variablen ein. Aus diesem Grund behält die Variable immer den Anfangswert, wenn die Seite gerendert wird.

Stattdessen, was Sie tun sollen, etwas mehr wie die folgende ist:

JQuery

$(document).ready(function() { 
    $('#hit').click(function() { 
    alert($('#term').val()); 
    }); 
}); 

In diesem Stück Code, der Wert des Elements mit id Begriff wird ausgewertet, wenn die Klick-Ereignis-Listener Brände .

3

Sie müssen den Wert auf click zu bekommen, anstatt document ready

$(document).ready(function() { 
    $('#hit').click(function() { 
    var term = $('#term').val(); 
    alert(term); 
    }); 
}); 
5

Da Sie die Variable nur erstellt, wenn das Dokument fertig ist .. versuchen, die Variable „Begriff“ in der Klick-Funktion zu erstellen. ..

$(document).ready(function() { 
     $('#hit').click(function(event) { 
      var term = $('#term').val(); 
      alert(term); 
     }); 
    });​ 
Verwandte Themen