Reputation: 13773
How do you change the text value of a button in jQuery? Currently, my button has 'Add' as its text value, and upon being clicked I want it to change to 'Save'. I have tried this method below, but so far without success:
$("#btnAddProfile").attr('value', 'Save');
Upvotes: 618
Views: 1055179
Reputation: 49
$(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>
Upvotes: 4
Reputation: 369
You can use something like this:
$('#your-button').text('New Value');
You can also add extra properties like this:
$(this).text('New Value').attr('disabled', true).addClass('bt-hud').unbind('click');
Upvotes: 26
Reputation: 57
$( "#btnAddProfile" ).on( "click",function(event){
$( event.target ).html( "Save" );
});
Upvotes: -1
Reputation: 231
You need to do .button("refresh")
HTML :
<button id='btnviewdetails' type='button'>SET</button>
JS :
$('#btnviewdetails').text('Save').button("refresh");
Upvotes: 23
Reputation: 6499
it's work for me html:
<button type="button" class="btn btn-primary" id="btnSaveSchedule">abc</button>
js
$("#btnSaveSchedule").text("new value");
Upvotes: 6
Reputation: 9
This should do the trick:
$("#btnAddProfile").prop('value', 'Save');
$("#btnAddProfile").button('refresh');
Upvotes: 0
Reputation: 50009
Depends on what type of button you are using
<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');
Your button could also be a link. You'll need to post some HTML for a more specific answer.
EDIT : These will work assuming you've wrapped it in a .click()
call, of course
EDIT 2 : Newer jQuery versions (from > 1.6) use .prop
rather than .attr
EDIT 3 : If you're using jQuery UI, you need to use DaveUK's method (below) of adjusting the text property
Upvotes: 1047
Reputation: 2343
The correct way of changing the button text if it was "buttonized" using JQuery is to use .button() method:
$( ".selector" ).button( "option", "label", "new text" );
Upvotes: 86
Reputation: 1743
For buttons created with .Button() in jQuery........
Whilst the other answers will change the text they will mess up the styling of the button, it turns out that when a jQuery button is rendered the text of the button is nested within a span e.g.
<button id="thebutton">
<span class="ui-button-text">My Text</span>
</button>
If you remove the span and replace it with text (as in the other examples) - you'll loose the span and associated formatting.
So you actually need to change the text within the SPAN tag and NOT the BUTTON!
$("#thebutton span").text("My NEW Text");
or (if like me it's being done on a click event)
$("span", this).text("My NEW Text");
Upvotes: 161
Reputation: 3381
You can use
$("#btnAddProfile").text('Save');
although
$("#btnAddProfile").html('Save');
would work as well, but it's misleading (it gives the impression you could write something like
$("#btnAddProfile").html('Save <b>now</b>');
but of course you can't
Upvotes: 9
Reputation: 768
$("#btnviewdetails").click(function(){
if($(this).val()!="hide details"){
$("#detailedoutput").show();
$(this).val('hide details');
}else{
$("#detailedoutput").hide();
$(this).val('view more details');
}
});
Upvotes: 0
Reputation: 13533
Have you gave your button a class instead of an id? try the following code
$(".btnSave").attr('value', 'Save');
Upvotes: 2
Reputation: 2987
If you have button'ed your button this seems to work:
<button id="button">First caption</button>
$('#button').button();//make it nice
var text="new caption";
$('#button').children().first().html(text);
Upvotes: 12
Reputation: 9905
To change the text in of a button simply execute the following line of jQuery for
<input type='button' value='XYZ' id='btnAddProfile'>
use
$("#btnAddProfile").val('Save');
while for
<button id='btnAddProfile'>XYZ</button>
use this
$("#btnAddProfile").html('Save');
Upvotes: 41
Reputation: 37507
that's exactly correct, this works for me;
$('#btnAddProfile').bind('click',function(){
$(this).attr('value','save');
})
are you sure Jquery is available and that your code is in the correct place?
Upvotes: -1
Reputation: 5138
$("#btnAddProfile").click(function(){
$("#btnAddProfile").attr('value', 'Save');
});
Upvotes: 5