回发后jquery代码无效

时间:2011-03-26 09:22:42

标签: javascript jquery validation jquery-plugins postback

我编写了以下jquery代码,只允许文本框中的数字。

$("[id$='txtPriority']").keydown(function (event) {
                if (event.keyCode == 48) {
                    var value = $("[id$='txtPriority']").val();
                    if (value == "") {
                        event.preventDefault();
                        return;
                    }
                }
                else if (event.keyCode == 86 || event.keyCode == 118) {
                    event.preventDefault();
                    return;
                }
                else {
                    $("[id$='txtPriority']").numeric();
                }
});
});

这是第一次加载页面时工作正常。但是回发后代码无效。可能是什么原因。

2 个答案:

答案 0 :(得分:3)

我用ajax改变了一些东西然后事件将无效。 尝试使用实时功能(http://api.jquery.com/live/

$("[id$='txtPriority']").live('keydown', function (event) {

答案 1 :(得分:0)

我曾经遇到过这个问题,这是因为我在回发中替换了表单的html。您需要在替换控件后重置事件处理程序或使用.live()处理程序,该处理程序甚至可以用于以后添加的元素:

$("[id$='txtPriority']").live('keydown', function (event ) {