จะเปลี่ยนข้อความของปุ่มใน jQuery ได้อย่างไร?


548

คุณจะเปลี่ยนค่าข้อความของปุ่มใน jQuery ได้อย่างไร? ปัจจุบันปุ่มของฉันมี 'เพิ่ม' เป็นค่าข้อความและเมื่อคลิกฉันต้องการให้เปลี่ยนเป็น 'บันทึก' ฉันได้ลองวิธีนี้ด้านล่าง แต่ยังไม่ประสบความสำเร็จ:

$("#btnAddProfile").attr('value', 'Save');

3
อันที่จริงตัวอย่างของคุณควรทำงานเพื่อเปลี่ยนค่าของปุ่ม ฉันลองแล้วใช้งานได้ บางทีรหัสของปุ่มอาจแตกต่างกันหรือพิมพ์ผิด
mjspier

ยังไม่ทำงาน ... สไตล์ JQuery UI สามารถทำให้เกิดสิ่งนี้ได้หรือไม่
user517406

4
คำตอบของ Sergey นั้นดีที่สุด มันทำงานอย่างถูกต้องกับปุ่ม jquery โดยไม่ต้องลบรูปแบบการขยายและขอบ
AaA

ใช้ $ ("# btnAddProfile"). prop ('value', 'Save');
พัฒนา Php

คำตอบ:


898

ขึ้นอยู่กับประเภทของปุ่มที่คุณใช้

<input type='button' value='Add' id='btnAddProfile'>
$("#btnAddProfile").attr('value', 'Save'); //versions older than 1.6

<input type='button' value='Add' id='btnAddProfile'>
$("#btnAddProfile").prop('value', 'Save'); //versions newer than 1.6

<!-- Different button types-->

<button id='btnAddProfile' type='button'>Add</button>
$("#btnAddProfile").html('Save');

ปุ่มของคุณอาจเป็นลิงค์ คุณจะต้องโพสต์ HTML เพื่อรับคำตอบที่เฉพาะเจาะจงยิ่งขึ้น

แก้ไข : สิ่งเหล่านี้จะใช้งานได้หากคุณห่อไว้ใน.click()สายแน่นอน

แก้ไข 2 : เวอร์ชัน jQuery ที่ใหม่กว่า (จาก> 1.6) ใช้.propแทน.attr

แก้ไข 3 : หากคุณใช้ jQuery UI คุณจะต้องใช้วิธีการของ DaveUK ( ด้านล่าง ) ในการปรับคุณสมบัติข้อความ


7
หากทำงานโดยใช้. html ('บันทึก') ฉันไม่ได้สังเกตว่าฉันได้ตั้ง runat = เซิร์ฟเวอร์ไว้ที่ปุ่มของฉันนี่คือสิ่งที่ทำให้เกิดปัญหา
user517406

วิธีใดที่ฉันสามารถทำให้มันใช้งานได้และมันจะไม่หดตัวลงปุ่ม jquery ui ของฉัน?
สิบเจ็ด

2
ไม่ต้องกังวลกับมัน ฉันเปลี่ยนจากbuttonเป็นinputและเปลี่ยนไอคอนรอบแทนที่จะล้อเล่นกับข้อความ (ฉันคิดว่าบางสิ่งไม่ได้หมายความว่าจะเป็น)
เจ็ด

8
ฉันจะลงคะแนนถ้าฉันทำได้เพราะมันทำให้สไตล์ในบางกรณี โดยใช้คำตอบของ DaveUK ถ้าคุณมีปัญหากับคนนี้ PS: ฉันเดาว่านั่นเป็นสิ่งที่ Sevenearths สังเกตเช่นกัน
user562529

3
ดียิ่งขึ้น: ใช้คำตอบจาก Sergey ด้านล่างสำหรับการใช้ jQuery และการพิสูจน์อักษรในอนาคต: $ (".selector") .button ("ตัวเลือก", "ป้ายกำกับ", "ข้อความใหม่");
cincodenada

148

สำหรับปุ่มที่สร้างขึ้นด้วย. ปุ่ม () ใน jQuery ........

ในขณะที่คำตอบอื่น ๆ จะเปลี่ยนข้อความที่พวกเขาจะเลอะสไตล์ของปุ่มมันปรากฎว่าเมื่อปุ่ม jQuery แสดงผลข้อความของปุ่มจะซ้อนอยู่ภายในช่วงเช่น

<button id="thebutton">
  <span class="ui-button-text">My Text</span>
</button>

หากคุณลบช่วงและแทนที่ด้วยข้อความ (เช่นในตัวอย่างอื่น ๆ ) - คุณจะสูญเสียช่วงและรูปแบบที่เกี่ยวข้อง

ดังนั้นคุณต้องเปลี่ยนข้อความภายในแท็ก SPAN ไม่ใช่ปุ่ม!

$("#thebutton span").text("My NEW Text");

หรือ (ถ้าชอบฉันมันกำลังดำเนินการกับเหตุการณ์คลิก)

$("span", this).text("My NEW Text");

4
คุณไม่ควรคาดหวังว่าโครงสร้าง DOM นี้จะไม่มีวันเปลี่ยนแปลง ดียิ่งกว่านั้นคือการใช้วิธีการ jQuery-UI ช่วยให้คุณเปลี่ยนฉลาก (ดูคำตอบของ Sergey)
Mike DeSimone

80

วิธีที่ถูกต้องในการเปลี่ยนข้อความปุ่มถ้าเป็น "buttonized" โดยใช้ JQuery คือการใช้วิธีการ. button ():

$( ".selector" ).button( "option", "label", "new text" );

3
วิธีนี้ใช้ได้ผลดีกว่าวิธีอื่น ๆ ซึ่งใช้สไตล์ของปุ่ม (โดยเฉพาะขนาดของปุ่ม) ฉันใช้ปุ่มบนกล่องโต้ตอบ jQuery UI, FWIW
Dave Crumbacher

8
นี่คือคำตอบที่ถูกต้องสำหรับปุ่มที่สร้างด้วย jQuery เช่นปุ่มโต้ตอบ คนอื่น ๆ ทั้งหมดจะทำลายสไตล์ของ jQuery สิ่งนี้ทำได้โดยไม่ต้องขึ้นอยู่กับโครงสร้าง HTML ที่ jQuery สร้างขึ้นซึ่งพิสูจน์ได้ในอนาคต
cincodenada

นี่คือคำตอบที่ถูกต้องสำหรับคำถามนี้ (ดูเหมือนว่าคำถามเกี่ยวกับปุ่ม Jquery UI ดูความคิดเห็น) ควรได้รับการส่งเสริม
peveuve

38

หากต้องการเปลี่ยนข้อความในปุ่มเพียงแค่ดำเนินการบรรทัด jQuery ต่อไปนี้สำหรับ

<input type='button' value='XYZ' id='btnAddProfile'>

ใช้

$("#btnAddProfile").val('Save');

ในขณะที่สำหรับ

<button id='btnAddProfile'>XYZ</button>

ใช้สิ่งนี้

$("#btnAddProfile").html('Save');


นอกจากนี้สำหรับปุ่มที่สร้างขึ้นโดย jquery โดยใช้เช่น$('#thing').append($("<button />")....)คุณต้องใช้. html เพื่อตั้งค่าข้อความ
Benubird


22

คุณต้องทำ .button("refresh")

HTML :

<button id='btnviewdetails' type='button'>SET</button>

JS :

$('#btnviewdetails').text('Save').button("refresh");

ด้วยเหตุผลบางอย่างจะใช้งานได้สำหรับฉันหลังจากที่ฉันใช้รหัสของคุณเพื่อรีเฟรชปุ่ม แต่ฉันยังสังเกตเห็นว่าไอคอนบนปุ่ม (ส่วนหนึ่งของ JQuery Mobile CSS) หายไปหลังจากรีเฟรช (แม้ว่าโซลูชันของคุณจะใกล้เคียงที่สุด ฉันได้).
Ciaran Gallagher

12

หากคุณได้ทำปุ่มแล้วปุ่มของคุณมันก็ใช้งานได้:

<button id="button">First caption</button>

$('#button').button();//make it nice
var text="new caption";
$('#button').children().first().html(text);


10

คุณสามารถใช้สิ่งนี้:

$('#your-button').text('New Value');

คุณยังสามารถเพิ่มคุณสมบัติพิเศษเช่นนี้:

$(this).text('New Value').attr('disabled', true).addClass('bt-hud').unbind('click');

ไม่สามารถใช้งานปุ่มป้อนข้อมูลหรือส่งปุ่มใช้ val ()
ActiveX

8

คุณสามารถใช้ได้

$("#btnAddProfile").text('Save');

แม้ว่า

$("#btnAddProfile").html('Save');

จะทำงานได้เช่นกัน แต่มันทำให้เข้าใจผิด (มันให้ความประทับใจที่คุณสามารถเขียนบางอย่างเช่น

$("#btnAddProfile").html('Save <b>now</b>');

แต่แน่นอนคุณไม่สามารถ



5
$("#btnAddProfile").click(function(){
    $("#btnAddProfile").attr('value', 'Save');
 });

10
การทำซ้ำรหัสที่ไม่ทำงานจากคำถามไม่ใช่คำตอบ
Benubird


4

$(document).ready(function(){
    $(":button").click(function(){
        $("p").toggle();

    if (this.value=="Add") this.value = "Save";
    else this.value = "Add";

  });
});
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>

<input type='button' value='Add' id='btnAddProfile'>

<p>This is a paragraph with little content.</p>
<p>This is another small paragraph.</p>

</body>
</html>



1
$("#btnviewdetails").click(function(){
    if($(this).val()!="hide details"){
        $("#detailedoutput").show();
        $(this).val('hide details');
    }else{
        $("#detailedoutput").hide();
        $(this).val('view more details');
    }

});

รวมถึงรายละเอียดบางอย่างเกี่ยวกับคำตอบของคุณ
Starx

โปรดระบุรายละเอียดพร้อมคำตอบของคุณ ฉันไม่รู้ว่าคุณกำลังพยายามทำอะไรที่นี่
Anurag



0

ถูกต้องแล้วมันใช้ได้กับฉัน;

    $('#btnAddProfile').bind('click',function(){
    $(this).attr('value','save');
})

คุณแน่ใจว่า Jquery พร้อมใช้งานและรหัสของคุณอยู่ในตำแหน่งที่ถูกต้องหรือไม่



0

การเปลี่ยนชื่อของมารยาทปุ่มใน C #

<button type="submit" name="add" id="btnUpdate" class="btn btn-primary" runat="server" onserverclick="btnUpdate_Click">
Add

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