我有跨度内的按钮
<span class="act-button"><input type="button" value="Deactivate" onclick="deactivateTemplate(' + options.rowId + ')"></span>
我需要在span.act-button
之后更改onclick
内的文字
我试图使用这段代码
function deactivateTemplate(id) {
$.post('@Url.Action("DeactivateFormTemplate")', { id: id })
.done(function (result) {
showMessage(result.Message);
$('span.act-button').empty().html('<input type="button" value="Activate" onclick="activateTemplate(' + options.rowId + ')">');
});
但点击后我的按钮就消失了,我在span.act-button
内没有新的按钮。
我的代码出了什么问题?
答案 0 :(得分:1)
无需重新创建按钮。只需更改其值
function deactivateTemplate(id) {
$.post('@Url.Action("DeactivateFormTemplate")', { id: id })
.done(function (result) {
showMessage(result.Message);
$('span.act-button>input').val('Activate');
});
}
jquery中的DOM操作方法是异步的:它们不会立即完成。因此,empty()可以在html()之后完成执行。尽量不要那样使用。