У меня есть кнопка внутри диапазона
<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
.
Что случилось с моим кодом?
Нет необходимости воссоздавать вашу кнопку. Просто измените его значение
function deactivateTemplate(id) {
$.post('@Url.Action("DeactivateFormTemplate")', { id: id })
.done(function (result) {
showMessage(result.Message);
$('span.act-button>input').val('Activate');
});
}
Методы манипуляции DOM в jquery являются асинхронными: они не завершаются немедленно. Поэтому возможно, что empty() завершит выполнение после html(). Старайтесь не использовать оба вида.
<span class="act-button"><input type="button" value="Deactivate" onclick="deactivateTemplate(' + options.rowId + ')"></span>
на моей странице, но после нажатияspan.act-button
становится пустым, и я не получаю новую кнопку внутри.