2012-05-29 30 views
5

html:jQuery. Ottieni il valore del campo di immissione del testo sul pulsante facendo clic sull'evento?

<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); 
    }); 
}); 

Il problema è che, non importa quello che ho tipo nel campo di immissione, quindi premere il pulsante, è sempre vigile il valore di ingresso originale, che è " inserisci la tua ricerca ".

Come posso risolvere il problema?

risposta

15

il problema che stai avendo è che tutto questo blocco di codice viene eseguito sull'evento pronto DOM.

var term = $('#term').val(); viene valutato solo una volta e memorizzando 'inserisci la ricerca' nella variabile di termine. Questo è il motivo per cui, indipendentemente da ciò a cui si modifica il valore, la variabile conserva ancora il valore iniziale al momento del rendering della pagina.

Invece ciò che si dovrebbe fare è qualcosa di più simile al seguente:

JQuery

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

In questo pezzo di codice, il valore dell'elemento con termine id viene valutata quando i fuochi listener di eventi click .

3

è necessario per ottenere il valore sul click, piuttosto che document ready

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

Perché si è creato la variabile solo quando il documento è pronto .. cercano di creare il "termine" variabile all'interno della funzione click. ..

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