ต่อท้ายข้อความในช่องป้อนข้อมูล


คำตอบ:


203

    $('#input-field-id').val($('#input-field-id').val() + 'more text');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="input-field-id" />


5
โปรดอ่านคำตอบของฉันสำหรับคำถามนี้ด้วย - ไม่มีเหตุผลที่จะต้องโทร$('#input-field-id')สองครั้ง ... คำตอบง่ายมากแม้ว่า - +1
gnarf

2
ฉันรู้สึกว่าควรมีฟังก์ชั่นที่เพิ่มมูลค่าของอินพุตอย่างที่คุณทำได้กับไฟล์innerHTML.
Blue Sheep

109

มีสองทางเลือก วิธีการของ Ayman เป็นวิธีที่ง่ายที่สุด แต่ฉันจะเพิ่มโน้ตพิเศษเข้าไป คุณควรแคชการเลือก jQuery จริงๆไม่มีเหตุผลที่จะโทร$("#input-field-id")สองครั้ง:

var input = $( "#input-field-id" );
input.val( input.val() + "more text" );

ตัวเลือกอื่น ๆ.val()สามารถใช้ฟังก์ชันเป็นอาร์กิวเมนต์ได้ สิ่งนี้มีข้อดีในการทำงานกับอินพุตหลายตัวได้อย่างง่ายดาย:

$( "input" ).val( function( index, val ) {
    return val + "more text";
});

2
ชอบ 'ตัวเลือกอื่น ๆ ' - FP ที่ดี
laher

17

หากคุณวางแผนที่จะใช้การต่อท้ายมากกว่าหนึ่งครั้งคุณอาจต้องการเขียนฟังก์ชัน:

//Append text to input element
function jQ_append(id_of_input, text){
    var input_id = '#'+id_of_input;
    $(input_id).val($(input_id).val() + text);
}

หลังจากที่คุณสามารถเรียกมันได้:

jQ_append('my_input_id', 'add this text');

ฉันไม่สามารถเพิ่มตัวยึดตำแหน่งลงในช่องค้นหาและต้องการใช้สิ่งนี้จากนั้นให้ล้างกล่องเมื่อผู้ใช้วางเคอร์เซอร์ในช่องค้นหา สิ่งนี้ทำได้หรือไม่?
Kevin W.


4

	// Define appendVal by extending JQuery
	$.fn.appendVal = function( TextToAppend ) {
		return $(this).val(
			$(this).val() + TextToAppend
		);
	};
//_____________________________________________

	// And that's how to use it:
	$('#SomeID')
		.appendVal( 'This text was just added' )
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<textarea 
          id    =  "SomeID"
          value =  "ValueText"
          type  =  "text"
>Current NodeText
</textarea>
  </form>

เมื่อสร้างตัวอย่างนี้ฉันรู้สึกสับสนเล็กน้อย " ValueText " เทียบกับ> NodeText ปัจจุบัน <ไม่.val()ควรเรียกใช้กับข้อมูลของแอตทริบิวต์ค่า ? อย่างไรก็ตามฉันและคุณฉันอาจจะเคลียร์เรื่องนี้ไม่ช้าก็เร็ว

อย่างไรก็ตามประเด็นสำหรับตอนนี้คือ:

เมื่อทำงานร่วมกับข้อมูลในแบบฟอร์มการใช้.val ()

เมื่อจัดการกับข้อมูลส่วนใหญ่ที่อ่านอย่างเดียวระหว่างแท็กให้ใช้. text ()หรือ. append ()เพื่อต่อท้ายข้อความ


1
สิ่งนี้เพิ่มสิ่งใหม่เพื่อตอบคำถามได้ดีขึ้นหรือไม่? ฉันเข้าใจว่าคุณแค่สร้างส่วนขยาย แต่ก็ได้รับคำตอบมาระยะหนึ่งแล้ว เพียงแค่ต้องการให้แน่ใจว่าคุณภาพของ SO ได้รับการสนับสนุน
Kevin Brown

1
ขอบคุณที่ห่วงใย - ฉันชอบแบบนั้น แต่ใช่คุณพูดถูกไม่มีสาระสำคัญใหม่มากนักยังคงเหมือนเดิม อย่างไรก็ตามเมื่อฉันสรุปคำตอบในปัจจุบันฉันรู้สึกว่ามีบางอย่างเกี่ยวกับรูปแบบและการนำไปใช้ ก่อนอื่นฉันตรวจสอบว่าบางส่วนของโพสต์สามารถแก้ไขได้หรือไม่ แต่ในที่สุดฉันคิดว่าควรสร้างใหม่ มีอะไรใหม่: * คุณสามารถเรียกใช้สนิปได้ * ส่วนขยายช่วยได้มากในการเขียนโค้ดการจัดทำเอกสารด้วยตนเองในขณะที่ไม่ทำให้เสียสมาธิในสาระสำคัญมากเกินไป
นาฑู

0
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <style type="text/css">
        *{
            font-family: arial;
            font-size: 15px;
        }
    </style>
</head>
<body>
    <button id="more">More</button><br/><br/>
    <div>
        User Name : <input type="text" class="users"/><br/><br/>
    </div>
    <button id="btn_data">Send Data</button>
    <script type="text/javascript">
        jQuery(document).ready(function($) {
            $('#more').on('click',function(x){
                var textMore = "User Name : <input type='text' class='users'/><br/><br/>";
                $("div").append(textMore);
            });

            $('#btn_data').on('click',function(x){
                var users=$(".users");
                $(users).each(function(i, e) {
                    console.log($(e).val());
                });
            })
        });
    </script>
</body>
</html>

เอาต์พุต ใส่คำอธิบายภาพที่นี่

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