¿Cómo cambiar el texto de un botón en jQuery?
Frecuentes
Visto 905,191 equipos
21 Respuestas
972
Depende del tipo de botón que estés usando
<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');
Su botón también podría ser un enlace. Deberá publicar algo de HTML para obtener una respuesta más específica.
EDITAR : Funcionarán asumiendo que lo ha envuelto en un .click()
llamar, por supuesto
EDIT 2 : Las versiones más recientes de jQuery (desde> 1.6) usan .prop
más bien que .attr
EDIT 3 : Si está usando jQuery UI, debe usar el método de DaveUK (a continuación) de ajustar la propiedad del texto
contestado el 23 de mayo de 17 a las 13:05
Lo hice funcionar usando .html ('Guardar'), no me di cuenta de que había configurado runat = server en mi botón, esto es lo que estaba causando el problema. - user517406
Yo rechazaría esto si pudiera, ya que estropea el estilo en algunos casos. Utilice la respuesta de DaveUK, si tiene problemas con esta. PD: Supongo que eso es lo que también notó Sevenearths. user562529
Aún mejor: use la respuesta de Sergey a continuación para el uso adecuado de jQuery y la preparación para el futuro: $ (".selector") .button ("opción", "etiqueta", "nuevo texto"); - cincodenada
Si button
elementos, también puede utilizar $("#element").val("New Label");
- Alex
155
Para botones creados con .Button () en jQuery ........
Si bien las otras respuestas cambiarán el texto, estropearán el estilo del botón, resulta que cuando se representa un botón de jQuery, el texto del botón está anidado dentro de un intervalo, por ejemplo
<button id="thebutton">
<span class="ui-button-text">My Text</span>
</button>
Si elimina el intervalo y lo reemplaza con texto (como en los otros ejemplos), perderá el intervalo y el formato asociado.
¡Así que realmente necesita cambiar el texto dentro de la etiqueta SPAN y NO el BOTÓN!
$("#thebutton span").text("My NEW Text");
o (si, como yo, se está haciendo en un evento de clic)
$("span", this).text("My NEW Text");
Respondido el 06 de enero de 12 a las 11:01
No debería esperar que esta estructura DOM nunca cambie. Mucho mejor es usar el método que jQuery-UI le brinda para cambiar la etiqueta (vea la respuesta de Sergey). - mike de simone
81
La forma correcta de cambiar el texto del botón si estaba "abotonado" usando JQuery es usar el método .button ():
$( ".selector" ).button( "option", "label", "new text" );
contestado el 23 de mayo de 12 a las 22:05
Esto funcionó para mí mejor que los otros enfoques, que pisotearon el estilo del botón (en particular, el tamaño del botón). Estaba usando un botón en un cuadro de diálogo de la interfaz de usuario de jQuery, FWIW. - david crumbacher
Esta es la respuesta correcta para los botones creados con jQuery, como los de un diálogo. Todos los demás destruirán parte del estilo de jQuery. Esto también lo hace sin depender de la estructura HTML que genera jQuery, que está más preparada para el futuro. - cincodenada
Esta es la respuesta correcta a esta pregunta (parece que la pregunta es sobre los botones de la interfaz de usuario de Jquery, ver comentarios), debería promocionarse. - Peveuve
38
Para cambiar el texto de un botón, simplemente ejecute la siguiente línea de jQuery para
<input type='button' value='XYZ' id='btnAddProfile'>
utilizan el
$("#btnAddProfile").val('Save');
mientras que para
<button id='btnAddProfile'>XYZ</button>
utilizar este
$("#btnAddProfile").html('Save');
Respondido 07 Abr '11, 13:04
Además, para los botones creados por jquery usando eg $('#thing').append($("<button />")....)
, debe usar .html para configurar el texto. - benubird
33
Utilice la herramienta .val()
Respondido 07 Abr '11, 12:04
22
Necesitas hacer .button("refresh")
HTML :
<button id='btnviewdetails' type='button'>SET</button>
JS :
$('#btnviewdetails').text('Save').button("refresh");
respondido 09 mar '15, 10:03
Por alguna razón, solo funcionaría para mí después de usar su código para actualizar el botón, pero también noté que el ícono en el botón (parte de JQuery Mobile CSS) se pierde después de actualizarlo (aunque su solución fue la más cercana Tengo). - Ciaran Gallagher
12
Si ha abotonado su botón, esto parece funcionar:
<button id="button">First caption</button>
$('#button').button();//make it nice
var text="new caption";
$('#button').children().first().html(text);
Respondido 25 Jul 11, 21:07
11
Puedes usar algo como esto:
$('#your-button').text('New Value');
También puede agregar propiedades adicionales como esta:
$(this).text('New Value').attr('disabled', true).addClass('bt-hud').unbind('click');
Respondido el 21 de junio de 17 a las 06:06
No funciona con los botones de entrada o envío, use val () - ActiveX
10
Puedes usar
$("#btnAddProfile").text('Save');
aunque
$("#btnAddProfile").html('Save');
también funcionaría, pero es engañoso (da la impresión de que podrías escribir algo como
$("#btnAddProfile").html('Save <b>now</b>');
pero por supuesto que no puedes
Respondido el 14 de diciembre de 11 a las 00:12
10
$("#btnAddProfile").text("Save");
Respondido 25 Oct 15, 21:10
5
$("#btnAddProfile").click(function(){
$("#btnAddProfile").attr('value', 'Save');
});
Respondido 07 Abr '11, 12:04
Repetir el código que no funciona de la pregunta no es una respuesta. - benubird
5
es un trabajo para mí html:
<button type="button" class="btn btn-primary" id="btnSaveSchedule">abc</button>
js
$("#btnSaveSchedule").text("new value");
Respondido 29 Jul 14, 07:07
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>
respondido 27 nov., 17:11
3
¿Le ha dado a su botón una clase en lugar de una identificación? prueba el siguiente código
$(".btnSave").attr('value', 'Save');
Respondido 07 ago 11, 16:08
1
$("#btnviewdetails").click(function(){
if($(this).val()!="hide details"){
$("#detailedoutput").show();
$(this).val('hide details');
}else{
$("#detailedoutput").hide();
$(this).val('view more details');
}
});
respondido 22 nov., 11:08
1
Esto debería funcionar:
$("#btnAddProfile").prop('value', 'Save');
$("#btnAddProfile").button('refresh');
respondido 18 mar '13, 21:03
1
$("#btnAddProfile").html('Save').button('refresh');
Respondido 15 Abr '13, 18:04
0
eso es exactamente correcto, esto funciona para mí;
$('#btnAddProfile').bind('click',function(){
$(this).attr('value','save');
})
¿Estás seguro de que Jquery está disponible y que tu código está en el lugar correcto?
Respondido 07 Abr '11, 13:04
0
$( "#btnAddProfile" ).on( "click",function(event){
$( event.target ).html( "Save" );
});
contestado el 15 de mayo de 15 a las 08:05
0
Cambiar el nombre de la etiqueta del botón en C #.
<button type="submit" name="add" id="btnUpdate" class="btn btn-primary" runat="server" onserverclick="btnUpdate_Click">
Add
btnUpdate.**InnerText** = "Update";
Respondido 15 Oct 18, 21:10
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas jquery jquery-ui or haz tu propia pregunta.
en realidad, su ejemplo debería funcionar para cambiar el valor del botón. Lo intenté y funcionó. Tal vez la identificación del botón sea diferente o un error tipográfico. - mjspier
Todavía no funciona ... ¿podrían los estilos de interfaz de usuario de JQuery estar causando esto? - user517406
La respuesta de Sergey fue la mejor. funciona correctamente en los botones de jquery sin eliminar sus estilos, relleno y márgenes. - AaA