Ottieni il valore in una casella di testo di input


1004

Quali sono i modi per ottenere e rendere un valore di input usando jQuery?

Eccone uno:

$(document).ready(function() {
  $("#txt_name").keyup(function() {
    alert($(this).val());
  });
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<input type="text" id="txt_name" />


1
usa questo codice: var value = $ ('# txt_Name'). val (); Puoi anche impostare il valore usando jquery. per favore guarda questo post su: coding-issues.blogspot.in/2013/10/…
Ranadheer Reddy,

Risposte:


1654
//Get
var bla = $('#txt_name').val();

//Set
$('#txt_name').val(bla);

35
@Prabs, la domanda era: "Quali sono i modi per ottenere e rendere un valore di input usando jQuery?", L'etichetta non è un input.
Barry Michael Doyle,

3
rimuove le virgolette da "bla". Dovrebbe essere $ ('# txt_name'). Val (bla);
Charles Xavier,

9
@ParbhuBissessar Non necessariamente. Se vuole il testo letterale "bla", ha capito bene. Se vuole la valdel var blaquindi ha bisogno di togliere le virgolette.
double_j

notate il get: "val ()" invece di "val" potete vedere il mio profilo
TheRedstoneTaco

l'ho fatto ma ho avuto problemi.
Wasey Raza,

591

È possibile selezionare un valore solo nei due modi seguenti:

// First way to get a value
value = $("#txt_name").val(); 

// Second way to get a value
value = $("#txt_name").attr('value');

Se vuoi usare JavaScript direttamente per ottenere il valore, ecco come:

document.getElementById('txt_name').value 

6
So che questa è una domanda più vecchia, ma non dimenticare che attrpuò anche essere sostituito prop. Questo è semanticamente migliore.
Sablefoste,

Ha $("#txt_name").val(str);funzionato solo per me in Chrome per impostare il valore. Prova questo post .
gkiko,

La funzione di aggiunta jQuery sembra non avere problemi ad aggiungere all'HTML mantenendo i valori del modulo.
Adam F

1
$ ( "# txt_name") attr ( 'valore').; restituisce il valore predefinito / la risposta non è corretta!
zloctb,

1
tenere presente che $("#txt_name").attr('value')restituirà sempre il contenuto dell'attributo "valore", quindi se si modifica il campo di input, il valore non cambia. .val()restituirà sempre il contenuto del campo ..
honk31,

84

C'è una cosa importante da menzionare:

$("#txt_name").val();

restituirà il valore reale corrente di un campo di testo, ad esempio se l'utente ha digitato qualcosa lì dopo un caricamento della pagina.

Ma:

$("#txt_name").attr('value')

restituirà valore da DOM / HTML.


40

Puoi ottenere l' valueattributo direttamente dal momento che sai che è un <input>elemento, ma il tuo attuale utilizzo .val()è già quello attuale.

Per quanto sopra, basta usare .valuedirettamente l'elemento DOM, in questo modo :

$(document).ready(function(){
  $("#txt_name").keyup(function(){
    alert(this.value);
  });
});

@Bharan Perché hai bisogno di un'alternativa?
Doug Molineux,

3
in qualche posto, vorrei usare un'alternativa,
Bharanikumar,

16

Devi usare vari modi per ottenere il valore corrente di un elemento di input.

METODO - 1

Se vuoi usare un semplice .val(), prova questo:

<input type="text" id="txt_name" />

Ottieni valori da Input

// use to select with DOM element.
$("input").val();

// use the id to select the element.
$("#txt_name").val();

// use type="text" with input to select the element
$("input:text").val();

Impostare il valore su Input

// use to add "text content" to the DOM element.
$("input").val("text content");

// use the id to add "text content" to the element.
$("#txt_name").val("text content");

// use type="text" with input to add "text content" to the element
$("input:text").val("text content");

METODO - 2

Utilizzare .attr()per ottenere il contenuto.

<input type="text" id="txt_name" value="" />

Aggiungo solo un attributo al campo di input. value=""L'attributo è colui che porta il contenuto del testo che abbiamo inserito nel campo di input.

$("input").attr("value");

METODO - 3

puoi usarlo direttamente sul tuo inputelemento.

$("input").keyup(function(){
    alert(this.value);
});

15

Puoi ottenere il valore in questo modo:

this['inputname'].value

Dove si thisriferisce al modulo che contiene l'input.


8
Questa risposta presuppone che thissi riferisca al modulo che contiene l'input.
nandan,

15

Penso che questa funzione sia mancata qui nelle risposte precedenti:

.val( function(index, value) ) 

6

Per ottenere il valore della casella di testo, è possibile utilizzare la val()funzione jQuery .

Per esempio,

$('input:textbox').val() - Ottieni il valore della casella di testo.

$('input:textbox').val("new text message") - Imposta il valore della casella di testo.


3

Per coloro che come me sono principianti in JS e ottengono undefinedinvece il valore del testo, assicurati che il tuo idnon contenga caratteri non validi .


3

Puoi semplicemente impostare il valore nella casella di testo.

Innanzitutto, ottieni il valore come

var getValue = $('#txt_name').val();

Dopo aver ottenuto un valore impostato in input come

$('#txt_name').val(getValue);

1

Prova questo. Funzionerà di sicuro.

var userInput = $('#txt_name').attr('value')

No, non lo farà !! (1) Se non è presente alcun attributo "valore" ( <input type="text" />), restituisce un valore indefinito. (2) Se lo fai in questo modo <input type="text" value="test" />e l'utente digita foo nel campo di input, il $('#txt_name').attr('value')test restituisce comunque "
ndsvw

Questa risposta non è corretta ma questa è l'API che stavo cercando.
Anthony,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.