1112

What are the ways to get and render an input value using jQuery?

Here is one:

$(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" />
Kamil Kiełczewski
  • 85,173
  • 29
  • 368
  • 345
Bharanikumar
  • 25,457
  • 50
  • 131
  • 201
  • 1
    use this code: var value=$('#txt_Name').val(); You can also set the value using jquery. please look at this post at: http://coding-issues.blogspot.in/2013/10/how-to-setget-textbox-value-using.html – Ranadheer Reddy Oct 31 '13 at 09:59

13 Answers13

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

//Set
$('#txt_name').val(bla);
Jay Rathod
  • 11,131
  • 6
  • 34
  • 58
Conrad
  • 18,434
  • 1
  • 14
  • 2
618

You can only select a value with the following two ways:

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

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

If you want to use straight JavaScript to get the value, here is how:

document.getElementById('txt_name').value 
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
RJD22
  • 10,230
  • 3
  • 28
  • 35
94

There is one important thing to mention:

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

will return the current real value of a text field, for example if the user typed something there after a page load.

But:

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

will return value from DOM/HTML.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Artur79
  • 12,705
  • 1
  • 22
  • 22
45

You can get the value attribute directly since you know it's an <input> element, but your current usage of .val() is already the current one.

For the above, just use .value on the DOM element directly, like this:

$(document).ready(function(){
  $("#txt_name").keyup(function(){
    alert(this.value);
  });
});
Nick Craver
  • 623,446
  • 136
  • 1,297
  • 1,155
23

You have to use various ways to get current value of an input element.

METHOD - 1

If you want to use a simple .val(), try this:

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

Get values from 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();

Set value to 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");

METHOD - 2

Use .attr() to get the content.

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

I just add one attribute to the input field. value="" attribute is the one who carry the text content that we entered in input field.

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

METHOD - 3

you can use this one directly on your input element.

$("input").keyup(function(){
    alert(this.value);
});
Arun V Jose
  • 3,321
  • 2
  • 24
  • 24
16

I think this function is missed here in previous answers:

.val( function(index, value) ) 
Arsen Khachaturyan
  • 7,904
  • 4
  • 42
  • 42
dilip kumbham
  • 703
  • 6
  • 15
15

You can get the value like this:

this['inputname'].value

Where this refers to the form that contains the input.

Pranav A.
  • 460
  • 1
  • 5
  • 18
10

To get the textbox value, you can use the jQuery val() function.

For example,

$('input:textbox').val() – Get textbox value.

$('input:textbox').val("new text message") – Set the textbox value.

Ben
  • 8,894
  • 7
  • 44
  • 80
Yuval
  • 547
  • 1
  • 7
  • 14
5

You can simply set the value in text box.

First, you get the value like

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

After getting a value set in input like

$('#txt_name').val(getValue);
Muddasir23
  • 582
  • 6
  • 15
3

For those who just like me are newbies in JS and getting undefined instead of text value make sure that your id doesn't contain invalid characters.

Mikhail Sirotenko
  • 960
  • 1
  • 11
  • 16
2

Try this. It will work for sure.

var userInput = $('#txt_name').attr('value')
halfelf
  • 9,737
  • 13
  • 54
  • 63
H.Ostwal
  • 333
  • 1
  • 5
  • 11
0

You can try

let quantity = $('input[name = quantity]').val()

where the name of the input field is quantity

shillary
  • 19
  • 1
-1

Shortest

txt_name.value

txt_name.onkeyup = e=> alert(txt_name.value);
<input type="text" id="txt_name" />
Kamil Kiełczewski
  • 85,173
  • 29
  • 368
  • 345