.net - 如何禁用客户端上的 TextBox 单击 CheckBox

标签 .net asp.net javascript checkbox client-side

如何在客户端上禁用asp:TextBox点击HTML复选框或服务器端asp:CheckBox 使用 JavaScript?

<script type="text/javascript" language="javascript">
    function enableTextbox() {
        // ?
    }
</script>

<table>
    <tr>
        <td>
            <input id="checkTake" onclick="enableTextbox" title="Take?" />
        </td>
    </tr>
    <tr>
        <td>
            <asp:TextBox runat="server" ID="txtCommission" />
        </td>
    </tr>
</table>

最佳答案

这里棘手的部分是 ASP.NET 分配自动生成的 id所有runat="server"的属性元素,包括你的 TextBox .一个简单的解决方案是“注入(inject)”生成的 id进入脚本:

function enableTextbox() {
   var txtCommision = document.getElementById("<%= txtCommision.ClientID %>");
   txtCommision.disabled = !this.checked;
}

如果您更喜欢在没有这种“意大利面条代码”的情况下执行此操作 - 也许您希望将 JavaScript 放在一个单独的文件中 - 您可以避免使用 id用于选择 <input> field 。相反,您可以用 class 装饰它.在这种情况下,您可能希望使用某种选择器库在 JavaScript 中查找控件,jQuery 是一种流行的选择。

关于.net - 如何禁用客户端上的 TextBox 单击 CheckBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2572526/

相关文章:

javascript - CSS 的数据属性不是很有用吗?

c# - 如何在设计时自动插入构建日期

c# - list 资源 (Assembly.GetManifestResourceStream) 的资源名称是什么?

c# - 如何计算asp.net gridview itemtemplate文本框中的javascript中两个日期之间的天数

javascript - 具有 ID 的单个 Div 未通过 Jquery 隐藏在表单标记内

javascript - 如何为获取 API 调用设置大型请求正文

.net - Flourinefx:找不到合适的方法名称

c# - 应该在引发事件的类内部还是外部声明委托(delegate)?

c# - 文件下载奇怪的问题

asp.net - 如何在 Windows 10 上使用 IIS8 注册 .Net 4.5.1