Код JQuery не работает после обратной передачи - PullRequest
0 голосов
/ 26 марта 2011

Я написал следующий код 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 ]

3 голосов
/ 26 марта 2011

Если вы что-то меняете с помощью ajax, то событие не будет работать. Попробуйте использовать живую функцию (http://api.jquery.com/live/)

$("[id$='txtPriority']").live('keydown', function (event) {
0 голосов
/ 26 марта 2011

Однажды у меня возникла эта проблема, потому что я заменял html для формы в обратной передаче. Вам необходимо сбросить обработчики событий после замены элементов управления или использовать обработчик .live (), который будет работать даже для элементов, которые вы добавите позже:

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