2011-03-26 69 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