Obter o valor em uma caixa de texto de entrada


1004

Quais são as maneiras de obter e renderizar um valor de entrada usando o jQuery?

Aqui está um:

$(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
use este código: var value = $ ('# txt_Name'). val (); Você também pode definir o valor usando jquery. veja este post em: coding-issues.blogspot.in/2013/10/…
Ranadheer Reddy

Respostas:


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

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

35
@Prabs, a pergunta era: "Quais são as maneiras de obter e renderizar um valor de entrada usando o jQuery?", O rótulo não é uma entrada.
Barry Michael Doyle

3
remova as aspas de 'bla'. Deve ser $ ('# txt_name'). Val (bla);
Charles Xavier

9
@ParbhuBissessar Não necessariamente. Se ele quer o texto literal 'bla', ele está certo. Se ele quer o valdo, var blaentão ele precisa remover as aspas.
double_j

observe o get's: "val ()" em vez de "val", você pode olhar para o meu perfil
TheRedstoneTaco 18/18

Eu fiz isso, mas com problemas.
Wasey Raza

591

Você só pode selecionar um valor das duas maneiras a seguir:

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

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

Se você deseja usar o JavaScript direto para obter o valor, veja como:

document.getElementById('txt_name').value 

6
Sei que essa é uma pergunta mais antiga, mas não esqueça que a attrtambém pode ser substituída por prop. Isso é semanticamente melhor.
Sablefoste

$("#txt_name").val(str);funcionou para mim no Chrome para definir o valor. Tente este post .
gkiko

A função de acréscimo do jQuery parece não ter problemas em adicionar ao HTML, mantendo os valores do formulário.
Adam F

1
$ ("# nome_txt"). attr ('valor'); retornar valor padrão / resposta incorreta!
Zloctb

1
lembre-se de que $("#txt_name").attr('value')sempre retornará o conteúdo do atributo "valor"; portanto, se você alterar o campo de entrada, o valor não será alterado. .val()sempre retornará o conteúdo do campo ..
honk31

84

Há uma coisa importante a mencionar:

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

retornará o valor real atual de um campo de texto, por exemplo, se o usuário digitar algo após o carregamento da página.

Mas:

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

retornará valor de DOM / HTML.


40

Você pode obter o valueatributo diretamente, pois sabe que é um <input>elemento, mas seu uso atual .val()já é o atual.

Para o exposto acima, basta usar .valueo elemento DOM diretamente, assim :

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

@Bharan Por que você precisa de uma alternativa?
Doug Molineux

3
em algum lugar, eu gostaria de usar alternativa,
Bharanikumar

16

Você precisa usar várias maneiras de obter o valor atual de um elemento de entrada.

MÉTODO 1

Se você quiser usar um simples .val(), tente o seguinte:

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

Obter valores da entrada

// 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();

Defina o valor como Entrada

// 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");

MÉTODO - 2

Use .attr()para obter o conteúdo.

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

Acabei de adicionar um atributo ao campo de entrada. value=""atributo é aquele que carrega o conteúdo de texto que inserimos no campo de entrada.

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

MÉTODO - 3

você pode usar este diretamente em seu inputelemento.

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

15

Você pode obter o valor assim:

this['inputname'].value

Onde thisrefere-se ao formulário que contém a entrada.


8
Esta resposta assume que thisestá se referindo ao formulário que contém a entrada.
Nandan

15

Eu acho que essa função está faltando aqui nas respostas anteriores:

.val( function(index, value) ) 

6

Para obter o valor da caixa de texto, você pode usar a val()função jQuery .

Por exemplo,

$('input:textbox').val() - Obter valor da caixa de texto.

$('input:textbox').val("new text message") - Defina o valor da caixa de texto.


3

Para aqueles que, como eu, são iniciantes em JS e obtêm, em undefinedvez de valor de texto, verifique se o seu idnão contém caracteres inválidos .


3

Você pode simplesmente definir o valor na caixa de texto.

Primeiro, você obtém o valor como

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

Depois de obter um valor definido na entrada como

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

1

Tente isso. Isso funcionará com certeza.

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

Não, não vai !! (1) Se não houver atributo "valor" ( <input type="text" />), ele retornará indefinido. (2) Se você gosta isto <input type="text" value="test" />e os tipos de usuários foo no campo de entrada, os $('#txt_name').attr('value')ainda retorna "de teste.
ndsvw

Esta resposta não está correta, mas esta é a API que eu estava procurando.
Anthony
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.