gpt4 book ai didi

JavaScript 禁用 = true 与 ASP.NET 启用 = False

转载 作者:行者123 更新时间:2023-11-28 02:45:38 27 4
gpt4 key购买 nike

在我的 ASP.NET Web 应用程序中,我有一些元素可能在代码隐藏中禁用,并且某些元素可能在 JavaScript 中禁用。

对于代码隐藏元素,我只需使用以下 VB.NET 属性:

Me.element1.Enabled = False

对于动态元素,我使用以下 JavaScript 属性:

document.getElementById('" & Me.element2.ClientID & "').disabled = true;

我注意到的第一件事是,更改 Enabled 属性不仅仅将 disabled="disabled" 添加到标记中,它还更改了 button 中的类(我的按钮的皮肤类名称) 到 button aspNetDisabled。为了弥补这一点,我添加了以下额外的 JavaScript 行:

document.getElementById('" & Me.element2.ClientID & "').className = 'button aspNetDisabled';

(显然,这意味着如果/当我再次启用该元素时,我需要维护 className 属性,并且我需要确保使用 button/textbox/etc.(如适用) - 对于奖励积分,如果您对此有任何建议,我很乐意听到)

但是,我还注意到通过 JavaScript 生成的标记仅为 disabled="",而由 ASP.NET Enabled 属性更改生成的标记为 disabled="已禁用”

我尝试摆弄 JavaScript 将其更改为:

document.getElementById('" & Me.element2.ClientID & "').disabled = 'disabled';

但是,这似乎没有什么区别,该属性仍然为空。有趣的是 disabled=true;disabled='disabled'; 似乎以同样的方式工作 - 我希望其中一个更正确(我坚持 =true; 目前)。

在启用和禁用元素方面,是否有推荐的最佳方法可以使用 JavaScript 实现与服务器端 ASP.NET 相同的结果?

还有...

disabled="disabled"disabled="" 的渲染之间的差异可能会给我带来任何问题吗?

最佳答案

disabled 属性的值并不重要,它是隐含的 http://www.w3.org/TR/html401/interact/forms.html#h-17.12.1

不过,有些奇怪的事情发生了。

var my_elem = document.getElementById('my_elem');
elem.disabled = true; // disabled
elem.disabled = false; // enabled
elem.disabled = "false"; // disabled

奇怪的情况是

elem.disabled = ""; // disabled

通常 ""falsy(如 ""== falsetrue)。

我建议您使用框架来设置这些属性以捕获任何浏览器特定的行为。对于disabled 来说,没有太多冲突,但像opacity 这样的属性在所有浏览器中的工作方式并不相同。

关于JavaScript 禁用 = true 与 ASP.NET 启用 = False,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11931762/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com