根据 javascript 和 asp.net 中选中的复选框禁用/启用 HtmlSelect

发布于 2024-10-02 15:21:45 字数 127 浏览 2 评论 0原文

情况是这样的。我有一个 htmlselect 控件,加载时需要根据数据库查询中的真实或不真实的内容来最初启用或禁用。然后我需要用户能够单击复选框来禁用或启用相同的 htmlselect 控件,所有这些都无需回发。

这可能吗?

Here is the situation. I have a htmlselect control that when loaded needs to be initially enabled or disabled based upon something that is true or not from the database query. Then I need the user to be able to click on a checkbox to disable or enable the same htmlselect control, ALL without a postback.

Is this possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

岛徒 2024-10-09 15:21:45

应该是这样的:

 <input type="checkbox" onclick="document.getElementById('idOfSelect').disabled=(this.checked)?false:true">

Should be something like that:

 <input type="checkbox" onclick="document.getElementById('idOfSelect').disabled=(this.checked)?false:true">
像极了他 2024-10-09 15:21:45

您必须在运行时动态生成 HTML,方法是从服务器代码生成或使用模板。使用 Dr.Molle 上面建议的代码,并根据数据库查询的结果为 SELECT 的复选框/禁用样式插入 enabled 属性:

<INPUT type-"checkbox" checked ...>
<SELECT ...>

如果假设的话是否启用

<INPUT type-"checkbox" ...>
<SELECT disabled ...>

不幸的是,除非您使用非常复杂的 Web 框架,否则您无法结合 HTML 生成来设置初始状态和基于用户交互的动态更改。

将它们放在一起,使用通用的模板约定,您的 HTML 模板可能如下所示:

<INPUT type="checkbox" ${mySelectIsInitallyEnabled ? "checked" : ""} onclick="document.getElementById('mySelect').disabled=(this.checked)?false:true">
<SELECT id="mySelect" ${mySelectIsInitallyEnabled ? "" : "disabled"}>

    <!-- options ... -->

</SELECT>

You will have to generate the HTML dynamically at runtime, either by generating it from your server code or using a template. Use the code Dr.Molle suggested above, and insert an enabled attribute for the checkbox / disabled style for the SELECT based on the result from the database query:

<INPUT type-"checkbox" checked ...>
<SELECT ...>

if it is supposed to be enabled or

<INPUT type-"checkbox" ...>
<SELECT disabled ...>

if it is not.

Unfortunately, you can't combine the HTML generation to set the initial state and the dynamic change based on user interaction, unless you use a really sophisticated web framework.

Putting it all together, using a common templating convention, your HTML template might look like this:

<INPUT type="checkbox" ${mySelectIsInitallyEnabled ? "checked" : ""} onclick="document.getElementById('mySelect').disabled=(this.checked)?false:true">
<SELECT id="mySelect" ${mySelectIsInitallyEnabled ? "" : "disabled"}>

    <!-- options ... -->

</SELECT>
旧人 2024-10-09 15:21:45

使用 javascript 和代码隐藏我能够让它工作。谢谢大家

Using javascript and code-behind I was able to get this to work. Thank you all

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文