我有一个我在初始化时隐藏的下拉列表,因为除非客户端实际选择特定的radiobuttonlist对象,否则不需要它。我目前通过
将其设置为falsedlInterval.Attributes.CssStyle[HtmlTextWriterStyle.Visibility] = "hidden";
但是,尝试通过选择时的javascript来改变这一点,是失败的,目前,我已将我的代码设置为执行。
<script type="text/javascript" language="javascript">
$(document).ready(function () {
$("#<%=rblVectorChoices.ClientID%>").click(function() {
var intVectorSelectedIndex = $('#<%=rblVectorChoices.ClientID %> input[type=radio]:checked').val();
$("#<%=dlInterval.ClientID %>").style.visibility="visible";
if (intVectorSelectedIndex == 1) {
$("#<%=dlInterval.ClientID%>").show();
} else {
$("#<%=dlInterval.ClientID%>").hide();
}
});
});
</script>
正如您所看到的,我目前正在尝试将隐藏的可见性更改为可见,但我在浏览器控制台中收到错误&#39; TypeError:无法设置属性&#39 ;能见度&#39;未定义的&#39;
这对我来说没有多大意义,因为字段应该被隐藏,而不仅仅是null。导致这种情况发生的原因是什么,这样的事情有什么好的解决方案?
答案 0 :(得分:3)
HTML属性不称为visibility
。
在CSS中,.show()
/ .hide()
的相应属性为display
。
答案 1 :(得分:2)
您要查找的代码是:
dlInterval.Attributes.CssStyle["display"] = "none";
或者你可以改变javascript看起来像,我个人会认为你应该在javascript中隐藏元素,如果你要在javascript中显示它。而不是在.Net代码中设置display:none;
,在呈现页面时它将消失
只需重新编写代码:
<script type="text/javascript" language="javascript">
$(document).ready(function () {
// hide element initially
$("#<%=dlInterval.ClientID%>").hide();
$("#<%=rblVectorChoices.ClientID%>").click(function() {
// much easier way to check if check box is checked
if ( $("#<%=rblVectorChoices.ClientID input[type=radio]:checked%>").is(":checked)) {
$("#<%=dlInterval.ClientID%>").show();
} else {
$("#<%=dlInterval.ClientID%>").hide();
}
});
});
</script>
另外,我强烈建议使用类来使用javascript或jquery选择你的html元素,.Net破坏了id,你必须写出这个奇怪的语法才能获得正确的id,使用类可以防止所有这些
注意:如果您要使用第二个示例,那么您永远不需要弄乱
dlInterval.Attributes.CssStyle["display"] = "none";
答案 2 :(得分:0)
你可以使用道具并比较它是真还是假?此外,你不能调用$(“#&lt;%= dlInterval.ClientID%&gt;”)。style.visibility =“visible”;你必须这样称呼它:
对于那些回忆丢失的.NET内联ID的人来说,这是我修改后的代码:
$(document).ready(function () {
$("#<%=rblVectorChoices.ClientID%>").click(function () {
var intVectorSelectedIndex = $('#<%=rblVectorChoices.ClientID%>').prop('checked');
$("#<%=dlInterval.ClientID%>").css('visibility', 'visible');
if (intVectorSelectedIndex == true) {
$("#<%=dlInterval.ClientID%>").show();
} else {
$("#<%=dlInterval.ClientID%>").hide();
}
});