รับค่าในกล่องข้อความอินพุต


1004

วิธีการรับและแสดงค่าอินพุตโดยใช้ jQuery มีวิธีใดบ้าง

นี่คือหนึ่ง:

$(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
ใช้รหัสนี้: var value = $ ('# txt_Name'). val (); คุณยังสามารถตั้งค่าโดยใช้ jquery โปรดดูที่โพสต์นี้ได้ที่: coding-issues.blogspot.in/2013/10/…
Ranadheer Reddy

คำตอบ:


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

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

35
@ แท็บคำถามคือ: "วิธีการรับและแสดงค่าอินพุตโดยใช้ jQuery คืออะไร" ฉลากไม่ได้เป็นอินพุต
Barry Michael Doyle

3
ลบเครื่องหมายคำพูดออกจาก 'bla' ควรเป็น $ ('# txt_name'). val (bla);
Charles Xavier

9
@ParbhuBissessar ไม่จำเป็นต้องเป็น หากเขาต้องการข้อความตัวอักษร 'bla' เขาก็เข้าใจถูกต้อง หากเขาต้องการvalของvar blaจากนั้นเขาต้องการที่จะลบคำพูด
double_j

สังเกตการรับ: "val ()" แทน "val" คุณสามารถดูโปรไฟล์ของฉันได้
TheRedstoneTaco

ฉันทำสิ่งนี้ แต่มีปัญหา
Wasey Raza

591

คุณสามารถเลือกค่าได้สองวิธีดังต่อไปนี้:

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

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

หากคุณต้องการใช้จาวาสคริปต์โดยตรงเพื่อรับค่านี่คือวิธี:

document.getElementById('txt_name').value 

6
ฉันรู้ว่านี้เป็นคำถามที่เก่า แต่อย่าลืมว่านอกจากนี้ยังอาจถูกแทนที่ด้วยattr propนี่คือความหมายที่ดีกว่า
Sablefoste

ใช้$("#txt_name").val(str);งานได้กับฉันใน Chrome เท่านั้นเพื่อตั้งค่า ลองโพสต์นี้
gkiko

ฟังก์ชั่นผนวก jQuery ดูเหมือนว่าจะไม่มีปัญหาในการเพิ่ม HTML ในขณะที่รักษาค่าแบบฟอร์ม
Adam F

1
$ ( "# txt_name") attr ( 'ค่า'). ส่งคืนค่าเริ่มต้น / คำตอบไม่ถูกต้อง!
zloctb

1
โปรดทราบว่า$("#txt_name").attr('value')จะส่งคืนเนื้อหาของแอตทริบิวต์ "value" เสมอดังนั้นหากคุณเปลี่ยนฟิลด์อินพุตค่าจะไม่เปลี่ยนแปลง .val()จะส่งคืนเนื้อหาของฟิลด์ทั้งหมด ..
honk31

84

มีสิ่งสำคัญที่ต้องพูดถึง:

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

จะคืนค่าจริงในปัจจุบันของฟิลด์ข้อความตัวอย่างเช่นหากผู้ใช้พิมพ์บางสิ่งที่นั่นหลังจากโหลดหน้าเว็บ

แต่:

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

จะคืนค่าจาก DOM / HTML


40

คุณสามารถรับแอvalueททริบิวได้โดยตรงเนื่องจากคุณรู้ว่ามันเป็น<input>องค์ประกอบ แต่การใช้งานปัจจุบันของคุณ.val()เป็นสิ่งที่มีอยู่แล้วในปัจจุบัน

สำหรับด้านบนเพียงแค่ใช้.valueในองค์ประกอบ DOM โดยตรงเช่นนี้ :

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

@Bharan ทำไมคุณต้องการทางเลือก
Doug Molineux

3
ในบางแห่งฉันต้องการใช้ทางเลือก
Bharanikumar

16

คุณต้องใช้วิธีการต่าง ๆ เพื่อรับค่าปัจจุบันขององค์ประกอบการป้อนข้อมูล

วิธี - 1

ถ้าคุณต้องการที่จะใช้ง่าย.val()ลองนี้:

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

รับค่าจากอินพุต

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

ตั้งค่าเป็นอินพุต

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

วิธี - 2

ใช้.attr()เพื่อรับเนื้อหา

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

ฉันเพิ่งเพิ่มคุณสมบัติหนึ่งไปยังช่องใส่ value=""คุณลักษณะเป็นผู้ดำเนินการเนื้อหาข้อความที่เราป้อนในช่องใส่

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

วิธี - 3

คุณสามารถใช้สิ่งนี้กับinputองค์ประกอบของคุณได้โดยตรง

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



6

ในการรับค่า textbox คุณสามารถใช้ jQuery val()ฟังก์ชัน

ตัวอย่างเช่น,

$('input:textbox').val() - รับค่ากล่องข้อความ

$('input:textbox').val("new text message") - ตั้งค่ากล่องข้อความ


3

สำหรับผู้ที่ชอบฉันเป็นมือใหม่ใน JS และได้รับการundefinedแทนค่าข้อความให้แน่ใจว่าคุณidไม่ได้มีตัวอักษรที่ไม่ถูกต้อง


3

คุณสามารถกำหนดค่าในกล่องข้อความ

ก่อนอื่นคุณจะได้รับความคุ้มค่า

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

หลังจากได้รับค่าที่ตั้งไว้ในการป้อนข้อมูลเช่น

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

1

ลองสิ่งนี้ มันจะทำงานได้อย่างแน่นอน

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

ไม่มันจะไม่ !! (1) หากไม่มีแอตทริบิวต์ "value" ( <input type="text" />) มันจะส่งกลับไม่ได้กำหนด (2) ถ้าคุณทำเช่นนี้<input type="text" value="test" />และผู้ใช้พิมพ์ foo ลงในช่องป้อนข้อมูลการ$('#txt_name').attr('value')คืนค่าจะยังคงเป็น "test
ndsvw

คำตอบนี้ไม่ถูกต้อง แต่นี่คือ API ที่ฉันกำลังมองหา
Anthony
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.