显示内联抛出错误

时间:2016-10-06 15:57:58

标签: javascript jquery css

我有一个使用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" });

我错过了什么吗?

1 个答案:

答案 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 = [...]