我想默认禁用在Visual Studio 2013(Visual C ++)中使用Custom Wizard创建的项目向导中的一些控件。
代码:
<input class="CheckBox" type="checkbox" id="BOX1" title="Box 1">
创建一个复选框。
所以我试过了两个:
<input class="CheckBox" type="checkbox" id="BOX1" title="Box 1" disabled>
和
<input class="CheckBox" type="checkbox" id="BOX1"
title="Box 1" disabled="disabled">
但它们都没有工作(复选框仍然启用)。
我甚至尝试包括JS:
alert('JS works'); //alert occured (indeed, JS works in general)
document.getElementById("BOX1").disabled = true; //did not work
那么,如何禁用该控件?
对于这个例子,这里禁用了“使用HTML对话框”,我希望对我的控件产生相同的效果(屏幕截图来自MFC向导,但没关系):
答案 0 :(得分:1)
我的答案基于较旧版本的Visual Studio(2010),可能有不同的向导系统,但至少它是一个答案......
查看MFC应用程序向导,创建(默认情况下已禁用)复选框的方法是使用一个带有名称的基本复选框(在本例中为HTML_DIALOG
)。向导HTML有一个onload
方法,它调用一些JScript来初始化页面,并使用您所需的默认设置:
function InitDocument(document) {
...
HTML_DIALOG.disabled = true;
HTML_DIALOG_LABEL.disabled = true;
...
}
Visual Studio应用程序向导通常位于您的基本VS安装目录下(例如)VC\VCWizards
。我上面引用的MFC应用程序向导甚至更深(在我的安装和语言环境下)AppWiz\MFC\Application\html\1033
。具体路径可能因版本和语言而异。
对于您的示例,您可以采用以下路线,如果这是您要默认禁用的唯一项目:
<body ... onload="BOX1.disable=true;">
否则调用onload方法:
<body ... onload="initialise(document);">
...
</body>
<script language="JSCRIPT">
function initialise(document) {
BOX1.disabled = true;
BOX1_label.disabled = true;
}
</script>
正如我所说,这是基于VS2010的,而且还完全没有经过测试,但从中我得到的结论是HTML标签本身不应包含默认值,它们是在HTML加载后设置的。这种方法实际上为您提供了更多的范围来调整&#34;默认值基于参数。我想。