我的代码如下
<asp:DropDownList ID="ddlFilter" runat="server" onchange="ShowHideSearchTextBox(this)">
<asp:ListItem Value="0">--Select--</asp:ListItem>
<asp:ListItem Value="customer_name">Customer Name</asp:ListItem>
<asp:ListItem Value="order_number">Order Number</asp:ListItem>
<asp:ListItem Value="Pending">Dispatch Pending</asp:ListItem>
<asp:ListItem Value="Done">Dispatch Done</asp:ListItem>
</asp:DropDownList>
<script type="text/javascript">
function ShowHideSearchTextBox(me) {
var searchBox = document.getElementById("searchBox");
var validator = document.getElementById(" <%= RequiredFieldValidator1.ClientID%> ");
if (me.value == "Pending" || me.value == "Done") {
ValidatorEnable(validator, false);
searchBox.style.display = "none";
}
else {
ValidatorEnable(validator, true);
searchBox.style.display = "block";
}
}
</script>
无论我在下拉列表中选择了什么值,我的验证器始终处于活动状态。我在猜什么?
修改
validator
的值即将到来null
答案 0 :(得分:1)
您好我认为您的Validator已正确实现,因此问题在于您如何在javascript中访问验证器:
var validator = document.getElementById(" <%= RequiredFieldValidator1.ClientID%> ");
将其更改为:
var validator = document.getElementById("<%= RequiredFieldValidator1.ClientID %>");
删除引号中的额外空格可以解决问题,因为getElementById
不会为您删除空格。
测试上面的代码(使用有效的验证程序),更改解决了问题。