2011-03-26 98 views
0

我写了下面的jQuery代码,只允许在文本框中的数字。回发后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(); 
       } 
}); 
}); 

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

回答

3

我你正在改变一些事情与Ajax然后事件将无法正常工作。 尝试使用直播功能(http://api.jquery.com/live/

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

我怕我不是在all.Its简单的事件处理使用Ajax。 – Tortoise 2011-03-26 09:37:41

+0

谢谢danip,它适用于我 – Tortoise 2011-03-26 09:40:32

0

我曾经有过这个问题,是因为我被替换HTML在回发的形式。你需要替换控件后您的事件处理程序重置或使用.live()处理程序甚至元素,你以后添加这将工作:

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

它现在的工作。谢谢你杰森 – Tortoise 2011-03-26 09:41:35

+0

你提供了同样的答案.. – danidacar 2011-03-26 09:46:40