我的代码隐藏中有一个看起来像这样的电话:
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;
}
}
出于某种原因,这只会单向运作。如果将其设置为disabled = true,则不会返回启用状态,如果设置为disabled = false,则不会再次禁用。我查看了变量以查看它是否设置正确,它确实从true变为false,false变为true,但它不会改变按钮的禁用状态。
我错过了你能看到的任何小事吗?
感谢您提供任何帮助。
答案 0 :(得分:1)
我发现的第一件事是你传递一个布尔字符串
尝试替换
"SetButtonStatus('{0}')" // <-- SetButtonStatus('true')
通过
"SetButtonStatus({0})" // <-- SetButtonStatus(true)