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.