Каков правильный способ повторного включения ASP.NET LinkButton после его отключения?

Я искал два дня, чтобы найти решение этой проблемы, и я не могу найти ничего, что сработало бы для меня. У меня есть LinkButton, который отключен при загрузке страницы. Я отключаю кнопку следующим образом:

$("#BtnSubmit").prop("disabled", true);
$("#BtnSubmit").removeAttr("enabled");

Когда пользователь заполняет все обязательные поля, я пытаюсь повторно включить LinkButton следующим образом:

 $("#BtnSubmit").removeAttr("disabled");

Однако это не работает. Я просмотрел сгенерированную разметку, и кажется, что атрибут href атрибута LinkButton удален, когда для него установлено значение disabled. Простое удаление атрибута disabled не работает. Я также попытался добавить атрибут enabled следующим образом:

$("#BtnSubmit").attr("enabled", "true");

Однако это тоже не работает.

Что мне не хватает? Кнопка явно повторно активируется с точки зрения дизайна. Он отлично переходит от внешнего вида disabled к внешнему виду enabled, но не возвращает свой атрибут href. Я пытался вручную добавить href, но это тоже не работает. Большинство решений, которые я нашел, касаются только того, как отключить кнопку; ни один из них, похоже, ничего не упоминает о повторном включении. Какие-либо предложения?


person ic3man7019    schedule 08.07.2016    source источник
comment
Возможный дубликат переключение включенного/отключенного состояния LinkButton с помощью jquery   -  person Paul Abbott    schedule 08.07.2016
comment
@PaulAbbott Сейчас я пробую это решение. Спасибо.   -  person ic3man7019    schedule 08.07.2016


Ответы (2)


Было бы хорошо, если бы вы могли предоставить нам свою разметку ASPX и ее код в своем посте. Есть много способов отключить/включить кнопку. Вы делали это через серверную или клиентскую часть? Я предполагаю, что вы, вероятно, установили для свойства Enabled LinkButton значение False, что объясняет, почему также исчез атрибут href.

Один из подходов, который вы могли бы рассмотреть, заключается в том, что вы можете зарегистрировать свой код javascript на стороне клиента в событии Page_Load, и когда страница перезагрузится, код будет выполнен.

Что-то вроде этого

var script = "$('#BtnSubmit').prop('disabled', true);";
ScriptManager.RegisterStartupScript(Page, GetType(), "mykey", "script", true);

Надеюсь, поможет.

person woodykiddy    schedule 13.07.2016

У меня была похожая проблема, не так давно. Это сработало для меня:

    $("#BtnSubmit").prop("disabled", true);
    $("#BtnSubmit").prop("disabled", false);

Обратите внимание, что свойство HTML было установлено следующим образом при загрузке страницы:

<input type="submit" id="BtnSubmit" disabled="disabled"/>
person Matthew Alltop    schedule 08.07.2016
comment
Я попробовал это, но, к сожалению, это не сработало. У меня были те же проблемы, что и раньше. - person ic3man7019; 11.07.2016