我还研究了许多其他问题,并找到了非常简单的答案,包括下面的代码。我只是想检测当有人改变文本框的内容,但由于某种原因,它不工作…我没有得到控制台错误。当我在浏览器的change()函数中设置断点时,它永远不会碰到它。

$('#inputDatabaseName').change(function () { 
    alert('test'); 
});
<input id="inputDatabaseName">

当前回答

工作:

$("#ContentPlaceHolder1_txtNombre").keyup(function () {
    var txt = $(this).val();
        $('.column').each(function () {
            $(this).show();
            if ($(this).text().toUpperCase().indexOf(txt.toUpperCase()) == -1) {
                $(this).hide();
            }
        });
    //}
});

其他回答

文本输入直到失去焦点才触发更改事件。单击输入之外,将显示警报。

如果回调应该在文本输入失去焦点之前触发,则使用.keyup()事件。

试试keyup而不是change。

<script type="text/javascript">
   $(document).ready(function () {
       $('#inputDatabaseName').keyup(function () { alert('test'); });
   });
</script>

下面是.keyup()的官方jQuery文档。

在我的例子中,我有一个附加到日期选择器的文本框。对我来说唯一有效的解决方案是在datepicker的onSelect事件中处理它。

<input type="text"  id="bookdate">

$("#bookdate").datepicker({            
     onSelect: function (selected) {
         //handle change event here
     }
});

试试这样的方法,总是管用的。

$(function() {
    $("#my_input").on("change paste keyup", function() {
       alert($(this).val()); 
    });
});

工作:

$("#ContentPlaceHolder1_txtNombre").keyup(function () {
    var txt = $(this).val();
        $('.column').each(function () {
            $(this).show();
            if ($(this).text().toUpperCase().indexOf(txt.toUpperCase()) == -1) {
                $(this).hide();
            }
        });
    //}
});