我有以下代码,它可能会根据下拉列表中的值禁用或启用文本框。
现在这就是我从下拉列表中引用此代码的方式:
不幸的是,代码正在生成异常。我相信我使用了错误的事件处理程序,即 OnSelectedIndexChanged。请问这种情况怎么补救?
我有以下代码,它可能会根据下拉列表中的值禁用或启用文本框。
现在这就是我从下拉列表中引用此代码的方式:
不幸的是,代码正在生成异常。我相信我使用了错误的事件处理程序,即 OnSelectedIndexChanged。请问这种情况怎么补救?
使用适用于 JavaScript 函数调用的 onchange 事件。OnSelectedIndexChanged 是服务器端事件。
1) 将OnSelectedIndexChanged替换为onchange
和
2) 替换
var DropDown_Total = document.getElementById("DropDown_Total")
和
var DropDown_Total = document.getElementById("<%= DropDown_Total.ClientID %>")
对于所有 getElementById
3) 将(DropDown_Date.options[DropDown_Date.selectedIndex].value 替换为 (DropDown_Date.options[DropDown_Date.selectedIndex].text两个下拉菜单)
试试这个它的工作
<script type="text/javascript">
function DisableEnable() {
var DropDown_Total = document.getElementById("<%= DropDown_Total.ClientID %>")
var Textbox_Total = document.getElementById("<%= Textbox_Total.ClientID %>")
var DropDown_Date = document.getElementById("<%= DropDown_Date.ClientID %>")
var Textbox_Date = document.getElementById("<%= Textbox_Date.ClientID %>")
if (DropDown_Total.options[DropDown_Total.selectedIndex].text == "Any Amount") {
Textbox_Total.disabled = true;
}
else {
Textbox_Total.disabled = false;
}
if (DropDown_Date.options[DropDown_Date.selectedIndex].text == "Any Date") {
Textbox_Date.disabled = true;
}
else {
Textbox_Date.disabled = false;
}
}
</script>
html
<asp:TextBox runat="server" ID="Textbox_Total" />
<asp:TextBox runat="server" ID="Textbox_Date" />
<asp:DropDownList ID="DropDown_Total" runat="server" onchange="DisableEnable();">
<asp:ListItem>Any Amount</asp:ListItem>
<asp:ListItem>Exact Amount</asp:ListItem>
<asp:ListItem>Below Amount</asp:ListItem>
<asp:ListItem>Above Amount</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDown_Date" runat="server" onchange="DisableEnable();">
<asp:ListItem>Any Date</asp:ListItem>
<asp:ListItem>Exact Date</asp:ListItem>
<asp:ListItem>Before</asp:ListItem>
<asp:ListItem>After</asp:ListItem>
</asp:DropDownList>
只需替换OnSelectedIndexChanged
为,onchange
因为 onchange 由 js 处理。OnSelectedIndexChanged
由后面的代码处理。
教程:如何DropDownList
在 Javascript中禁用/启用文本框
在这个函数中,我们将下拉列表 id 和文本框 id 作为 js 函数中的参数传递
<script type="text/javascript">
function DisableEnableTxtbox(DropDown, txtbox) {
if (DropDown.options[DropDown.selectedIndex].text == "free") {
txtbox.disabled = true;
}
else {
txtbox.disabled = false;
}
}
</script>
现在添加以下代码:
<td align="center" class="line">
<asp:DropDownList ID="ddl_MonP1" runat="server" CssClass="ppup2" onchange="DisableEnableTxtbox(this,txt_MonP1);"></asp:DropDownList>
<asp:TextBox ID="txt_MonP1" runat="server" CssClass="ppup" placeholder="Subject"></asp:TextBox>
</td>