<script type="text/javascript">
function disablefield() {
if (document.getElementById('chkTaxApplicable').checked == true) {
document.getElementById('ddlTaxCode').value = '';
document.getElementById('ddlTaxCode').disabled = false;
}
else
{
document.getElementById('ddlTaxCode').disabled = true;
}
}
</script>
这是我的代码。我想在checked = true上启用下拉列表,反之亦然。 但我没有得到这个代码的任何输出。我应该使用更好的东西吗?
这是使用上述javascript的html部分。
<asp:CheckBox ID="chkTaxApplicable" runat="server" AutoPostBack="True"
onclick="javascript:disablefield() "
/>
</td>
</tr>
<tr>
<td align="right" valign="middle" class="style41">Purchase Tax Code</td>
<td align="left" valign="middle" class="style42">:</td>
<td align="left" valign="middle" class="style43">
<asp:DropDownList ID="ddlTaxCode" runat="server" Enabled="False">
答案 0 :(得分:2)
您必须更改一些HTML / ASPX代码
第一的
onchange = "disablefield(this)"
而不是
onclick="javascript:disablefield() "
您可以将this
作为对函数的引用,其中this
将是更改的当前对象。
在javascript中,您可以处理this
对象,如下所示。
function disablefield(elem) {
if (elem.checked) {
document.getElementById('ddlTaxCode').value = '';
document.getElementById('ddlTaxCode').disabled = false;
} else {
document.getElementById('ddlTaxCode').disabled = true;
}
}
如果您没有使用this
作为参考,则必须使用.CliendID
,因为您的复选框是使用服务器控件生成的[ASP控制]。
因此,无论元素是服务器控件的哪个位置,您都可以尝试
if (document.getElementById('<%=chkTaxApplicable.ClientID%>') //Same way in textboxes
this
reference 答案 1 :(得分:0)
使用此onchange="disablefield()"
代替onclick="javascript:disablefield() "
答案 2 :(得分:0)
它对我有用。
我认为问题在于你没有调用disablefield()函数。
&lt; input id =&#34; chkTaxApplicable&#34;类型=&#34;复选框&#34;的onClick =&#34; disablefield();&#34;&GT;
在提供javascript代码时,你应该使用这个jsfiddle:http://jsfiddle.net / hbCwe / 2 /
编辑:
这是因为javascript:disabledfield();改为使用disabledfield(),如上所述。
答案 3 :(得分:0)
你可以使用eventhandler.ie。
var checkbox = document.getElementById('chkTaxApplicable'); checkbox.addEventListener('change',disableField(),false);