我有一个使用display = none隐藏的文本框。我试图在某些条件下将其更改为可见,但它似乎不起作用。我已经检查过控件是否会发生更改事件。我尝试了各种方法让它发挥作用,我尝试过的3种方式都在$(' body')
中colValue = "<input id ='val' class='value' value ='" + field.Value + "'style = 'display: none'/>";
我尝试过这些不同的东西来展示控件。这些都不起作用。
$('#val').css("display", "block");
$('#val').css('display', 'inline');
$('#val').css({ "display": "inline" });
我错过了什么吗?
答案 0 :(得分:2)
修改
所以你的问题似乎是在更改事件后框没有出现。确保您的HTML ID是唯一的,并且在DOM准备好之后您的更改处理程序正在连接。如果这些都是正确的,那么问题可能存在于您已经显示的代码片段之外,因为您提供的代码应该有效。需要注意的一点是,在更改控件失去焦点之前,$(function() {
$('body').on('change', '.condition', function () {
$('#val').show();
});
});
事件不会被触发。如果它是另一个文本框,则必须在事件被触发之前单击开箱即可。请参阅下面的示例(注意:我正在使用show
来更新元素的可见性,因为它更具惯用性,但它应该在功能上与您尝试的相同。)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
Text Box 1 <input id ='val' class='value' value='test' style='display: none' type='text'/> <br />
Text Box 2 <input class='condition' type='text'/>
inline
您的应用程序中没有名为$("#val").css("display", "inline");
的变量。用引号括起来并使其成为一个字符串。此外,您正在尝试更改样式,因此您必须调用适当的方法(请参阅css
方法的文档):
$inject = [...]