У меня есть вызов в моем коде, который выглядит как:Отключение кнопки Javascript и C#
bool isQtyValid = true;
bool disabled = false;
foreach(parameters)
{
//setting isQtyValid
if (!isQtyValid)
disabled = true;
Page.ClientScript.RegisterStartupScript(this.GetType(), "function", string.Format("SetButtonStatus('{0}')", disabled.ToString().ToLower()), true);
}
тогда мой Javascript выглядит следующим образом:
function SetButtonStatus(disabled) {
var bb = document.getElementsByClassName('ButtonSubmit');
for (var i = 0; i < bb.length; i++) {
bb[i].disabled = disabled;
}
}
По какой-то причине это будет работать только в одну сторону. Если он отключен = true, он не вернется к включению, и если он отключится = false, он не вернется к отключению. Я посмотрел на переменную, чтобы убедиться, что она настроена правильно, и она меняет значение с true на false и false на true, если это необходимо, но не изменяет отключенное состояние кнопки.
Не хватает ли каких-либо мелочей, которые вы видите?
Благодарим за помощь, которую вы можете мне дать.
является '!' Опечатка нет на ваш реальный code? 'setButtonStatus (! isQtyValid)' –
да, это было, я обновил более описательный взгляд на мой код –
При каких условиях состояние может быть изменено? Если состояние изменено асинхронно (т. Е. Ajax), последующие вызовы для регистрации ваших сценариев запуска никогда не будут выполняться, потому что это происходит только при загрузке страницы, а не на частичных обратных передачах. – Stoop