JQuery'de bir düğmenin metni nasıl değiştirilir?


548

JQuery'de bir düğmenin metin değerini nasıl değiştirirsiniz? Şu anda, düğmemde metin değeri olarak 'Ekle' var ve tıklandığında 'Kaydet' olarak değişmesini istiyorum. Aşağıda bu yöntemi denedim, ancak şimdiye kadar başarı olmadan:

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

3
aslında örneğiniz düğmenin değerini değiştirmek için çalışmalıdır. Ben denedim ve işe yaradı. Belki düğmenin kimliği farklı veya yazım hatasıdır.
mjspier

Hala çalışmıyor ... JQuery UI stilleri buna neden olabilir mi?
user517406

4
Sergey'in cevabı en iyisiydi. jquery düğmeleri üzerinde stillerini, dolgularını ve kenar boşluklarını çıkarmadan düzgün çalışıyor.
AaA

bu $ ("# btnAddProfile"). prop ('değer', 'Kaydet') kullanın;
Php geliştirici

Yanıtlar:


898

Kullandığınız düğme türüne bağlıdır

<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');

Düğmeniz de bir bağlantı olabilir. Daha spesifik bir cevap için biraz HTML göndermeniz gerekir.

EDIT : Bunlar .click()elbette bir çağrıda tamamladığını varsayarak işe yarayacak

DÜZENLEME 2 : Daha yeni jQuery versiyonları kullanıma (1.6> itibaren) .propyerine.attr

DÜZENLEME 3 : jQuery kullanıcı arabirimi kullanıyorsanız DaveUK'ın text özelliğini ayarlama yöntemini ( aşağıda ) kullanmanız gerekir


7
.Html ('Save') kullanarak çalıştım, düğmemde runat = sunucu ayarladığımı fark etmedim, soruna neden olan buydu.
user517406

Herhangi bir şekilde bu işe almak ve benim jquery ui düğmesini küçültmek değil mi?
Sevenearths

2
bunun için endişelenme. Ben değiştirildi buttonetmek inputve yuvarlak metin yerine karıştırmasını simgelerini değiştirdi. (Sanırım bazı şeyler olması
gerekmiyordu

8
Bazı durumlarda stili bozduğu için bunu yapabilirdim. Bu konuda sorun yaşıyorsanız lütfen DaveUK'ın cevabını kullanın . PS: Sanırım Sevenearths da bunu fark etti
user562529

3
Daha da iyisi: jQuery'nin doğru kullanımı ve gelecekteki prova için aşağıdaki Sergey'in yanıtını kullanın: $ (".selector") .button ("seçenek", "etiket", "yeni metin");
cincodenada

148

JQuery ........ 'da .Button () ile oluşturulan düğmeler için

Diğer cevaplar metni değiştirirken, düğmenin stilini bozarlar, bir jQuery düğmesi oluşturulduğunda, düğmenin metni bir açıklık içine yerleştirilir.

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

Yayılma alanını kaldırır ve metinle değiştirirseniz (diğer örneklerde olduğu gibi) - yayılma alanını ve ilişkili biçimlendirmeyi kaybedersiniz.

Yani aslında DÜĞME DEĞİL, SPAN etiketi içindeki metni değiştirmeniz gerekir!

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

veya (benim gibi bir tıklama etkinliğinde yapılıyorsa)

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

4
Bu DOM yapısının asla değişmemesini beklememelisiniz. Çok daha iyi, jQuery-UI'nin etiketi değiştirmenizi sağladığı yöntemi kullanmaktır (bkz. Sergey'in cevabı).
Mike DeSimone

80

JQuery kullanılarak "düğmeli" ise düğme metnini değiştirmenin doğru yolu .button () yöntemini kullanmaktır:

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

3
Bu benim için düğmenin stiline (özellikle düğmenin boyutuna) dayanan diğer yaklaşımlardan daha iyi çalıştı. Bir jQuery UI iletişim kutusu FWIW bir düğme kullanıyordum.
Dave Crumbacher

8
Bu, iletişim kutusundaki gibi jQuery ile oluşturulan düğmeler için doğru yanıttır. Diğerleri jQuery stilinin bazılarını yok edecektir. Bu, jQuery'nin ürettiği HTML yapısına bağlı olmadan da bunu yapar, bu da geleceğe daha dayanıklıdır.
cincodenada

Bu, bu sorunun doğru cevabıdır (soru Jquery UI düğmeleriyle ilgilidir, yorumlara bakın), terfi edilmelidir.
peveuve

38

Bir düğmenin içindeki metni değiştirmek için aşağıdaki jQuery satırını yürütün

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

kullanım

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

süre için

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

bunu kullan

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


Ayrıca, örneğin jquery tarafından oluşturulan düğmeler için $('#thing').append($("<button />")....), metni ayarlamak için .html kullanmanız gerekir.
Benubird


22

Yapman lazım .button("refresh")

HTML :

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

JS :

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

Herhangi bir nedenle, sadece düğmeyi yenilemek için kodunuzu kullandıktan sonra benim için işe yarayacaktır, ancak düğmedeki simgenin (JQuery Mobile CSS'nin bir kısmı) yenilendikten sonra kaybolduğunu fark ettim (çözümünüz en yakın Bende var).
Ciaran Gallagher

12

Düğmenizi düğmeniz varsa, bu işe yarıyor gibi görünüyor:

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

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


10

Bunun gibi bir şey kullanabilirsiniz:

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

Bunun gibi ekstra özellikler de ekleyebilirsiniz:

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

Giriş düğmeleri çalışmaz veya düğmeler göndermez, val () kullanın
ActiveX

8

Kullanabilirsiniz

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

olmasına rağmen

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

ama yanıltıcıdır (böyle bir şey yazabileceğiniz izlenimini verir)

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

ama tabii ki yapamazsın


6
document.getElementById('btnAddProfile').value='Save';

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

10
Çalışmayan kodu sorudan tekrarlamak bir cevap değildir.
Benubird

4

benim için iş html:

<button type="button" class="btn btn-primary" id="btnSaveSchedule">abc</button>

js

$("#btnSaveSchedule").text("new value");

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>


2

Düğmenize kimlik yerine bir sınıf verdiniz mi? aşağıdaki kodu deneyin

$(".btnSave").attr('value', 'Save');

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

});

Cevabınızla ilgili bazı ayrıntılar ekleyin.
Starx

lütfen cevabınıza ayrıntıları ekleyin. Burada ne yapmaya çalıştığınıza dair hiçbir fikrim yok.
Anurag

1

Bu hile yapmalı:

$("#btnAddProfile").prop('value', 'Save');       
$("#btnAddProfile").button('refresh');


0

bu kesinlikle doğru, bu benim için çalışıyor;

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

Jquery'nin kullanılabilir olduğundan ve kodunuzun doğru yerde olduğundan emin misiniz?



0

C # 'daki düğme görgü kuralının adını değiştirme.

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

btnUpdate.**InnerText** = "Update";
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.