【问题标题】:jquery code is not workign after postback回发后jquery代码不起作用
【发布时间】:2011-03-26 09:22:42
【问题描述】:

我编写了以下 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();
                }
});
});

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

【问题讨论】:

    标签: javascript jquery validation jquery-plugins postback


    【解决方案1】:

    如果您正在使用 ajax 更改某些内容,那么该事件将不起作用。 尝试使用直播功能(http://api.jquery.com/live/

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

    【讨论】:

    • 恐怕我根本没有使用 Ajax。它的事件处理很简单。
    【解决方案2】:

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

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

    【讨论】: