Изменение текста внутри диапазона после клика (jquery)

0

У меня есть кнопка внутри диапазона

<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.
Что случилось с моим кодом?

  • 2
    Почти каждая строка этого кода ссылается на то, что мы не видим. Вы уверены, что все работает вместе, как вы ожидаете? Каковы итоговые значения из этих ссылок? Когда вы отлаживаете это, в какой момент наблюдаемое поведение отклоняется от ожидаемого поведения?
  • 0
    Я получаю <span class="act-button"><input type="button" value="Deactivate" onclick="deactivateTemplate(' + options.rowId + ')"></span> на моей странице, но после нажатия span.act-button становится пустым, и я не получаю новую кнопку внутри.
Теги:

1 ответ

1
  1. Нет необходимости воссоздавать вашу кнопку. Просто измените его значение

    function deactivateTemplate(id) {
            $.post('@Url.Action("DeactivateFormTemplate")', { id: id })
            .done(function (result) {
                showMessage(result.Message);
                $('span.act-button>input').val('Activate');
            });
    }
    
  2. Методы манипуляции DOM в jquery являются асинхронными: они не завершаются немедленно. Поэтому возможно, что empty() завершит выполнение после html(). Старайтесь не использовать оба вида.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню