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 开发者_StackOverflow社区this possible?
Should be something like that:
<input type="checkbox" onclick="document.getElementById('idOfSelect').disabled=(this.checked)?false:true">
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>
Using javascript and code-behind I was able to get this to work. Thank you all
精彩评论