ChatGPT解决这个技术问题 Extra ChatGPT

如何在 jQuery 中更改按钮的文本?

如何在 jQuery 中更改按钮的文本值?目前,我的按钮将“添加”作为其文本值,单击后我希望将其更改为“保存”。我在下面尝试过这种方法,但到目前为止没有成功:

$("#btnAddProfile").attr('value', 'Save');
实际上,您的示例应该可以更改按钮的值。我试过了,它奏效了。也许按钮的 id 不同或错字。
仍然不起作用... JQuery UI 样式会导致这种情况吗?
谢尔盖的回答是最好的。它在 jquery 按钮上正常工作,而不会删除其样式、填充和边距。

C
Community

取决于您使用的按钮类型

<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 以获得更具体的答案。

EDIT :当然,假设您已将其包装在 .click() 调用中,这些将起作用

EDIT 2:较新的 jQuery 版本(从 > 1.6 开始)使用 .prop 而不是 .attr

编辑 3 :如果您使用的是 jQuery UI,则需要使用 DaveUK 的方法 (below) 调整文本属性


使用 .html('Save') 让它工作,我没有注意到我在按钮上设置了 runat=server,这就是导致问题的原因。
如果可以的话,我会对此投反对票,因为它在某些情况下会破坏风格。如果您对此有疑问,请使用 DaveUK 的答案。 PS:我想这也是 Sevenearths 注意到的
更好的是:使用下面 Sergey 的答案来正确使用 jQuery 和面向未来: $( ".selector" ).button( "option", "label", "new text" );
对于 button 元素,您还可以使用 $("#element").val("New Label");
D
DaveUK

对于在 jQuery 中使用 .Button() 创建的按钮......

虽然其他答案会更改文本,但它们会弄乱按钮的样式,但事实证明,当呈现 jQuery 按钮时,按钮的文本嵌套在跨度内,例如

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

如果您删除跨度并将其替换为文本(如其他示例中所示) - 您将失去跨度和相关格式。

因此,您实际上需要更改 SPAN 标签中的文本,而不是 BUTTON!

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

或(如果像我一样,它正在点击事件中完成)

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

你不应该期望这个 DOM 结构永远不会改变。更好的是使用 jQuery-UI 为您提供的方法来更改标签(请参阅 Sergey 的回答)。
P
Perception

如果使用 JQuery “按钮化”,则更改按钮文本的正确方法是使用 .button() 方法:

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

这比其他方法对我更有效,其他方法会影响按钮的样式(特别是按钮的大小)。我在 jQuery UI 对话框 FWIW 上使用了一个按钮。
这是使用 jQuery 创建的按钮的正确答案,例如对话框上的按钮。所有其他人都会破坏一些 jQuery 样式。这也无需依赖 jQuery 生成的 HTML 结构即可完成,这更加面向未来。
这是这个问题的正确答案(似乎问题是关于 Jquery UI 按钮,请参阅评论),应该推广。
S
Sangeet Menon

要更改按钮的文本,只需执行以下 jQuery 行

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

利用

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

而对于

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

用这个

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


此外,对于 jquery 使用例如 $('#thing').append($("<button />")....) 创建的按钮,您需要使用 .html 来设置文本。
佚名
T
Thirumalai murugan

你需要做.button("refresh")

HTML:

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

JS:

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

出于某种原因,它仅在我使用您的代码刷新按钮后才对我有用,但我也注意到按钮上的图标(JQuery Mobile CSS 的一部分)在刷新后会丢失(尽管您的解决方案是最接近的我有)。
M
Musakkhir Sayyed

你可以使用这样的东西:

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

您还可以像这样添加额外的属性:

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

输入按钮或提交按钮不起作用,请使用 val()
i
i_emmanuel

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


G
Gluip

如果您已按下按钮,这似乎有效:

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

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

g
gotofritz

您可以使用

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

虽然

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

也可以,但它具有误导性(它给人的印象是你可以写类似的东西

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

但你当然不能


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

重复问题中的非工作代码不是答案。
c
curtisk
document.getElementById('btnAddProfile').value='Save';

无用,OP 要求使用 jQuery
G
Grey Wolf

它对我有用html:

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

js

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

N
Nandhi Kumar

$(document).ready(function(){ $(":button").click(function(){ $("p").toggle(); if (this.value=="Add") this.value = "保存"; 否则 this.value = "添加"; }); });

这是一个内容很少的段落。

这是另一个小段落。


L
Lenin Raj Rajasekaran

你给你的按钮一个类而不是一个id吗?试试下面的代码

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

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

});

包括一些关于你的答案的细节。
请在您的回答中附上详细信息。我不知道你想在这里做什么。
O
Olle Klang

这应该可以解决问题:

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

D
Drastick
$("#btnAddProfile").html('Save').button('refresh');

J
John Beynon

完全正确,这对我有用;

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

您确定 Jquery 可用并且您的代码在正确的位置吗?


V
VladL
    $( "#btnAddProfile" ).on( "click",function(event){
    $( event.target ).html( "Save" );
});

d
danday74

在 C# 中更改按钮礼仪的名称。

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

btnUpdate.**InnerText** = "Update";