Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > WWW Masters. Прочее > CGI.pm + javascript = troubles |
Автор: jodaka 26.04.02, 20:00 |
возникла проблемка небольшая с тем, что при use CGI не работает onkeydown event, короче вот кусок кода: my $z->new CGI; print $z->p('some text'), $z->textfield( -name => 'some_name', -value => '11', -onKeyPress => 'if ((event.keyCode < 48) || (event.keyCode > 57)) event.returnValue = false;') Так вот, при таком коде в результате получается следующее <p>some text</p> <input type="text" name="some_name" value="11" onkeypress="if ((event.keyCode < 48) || (event.keyCode > 57)) event.returnValue = false;" /> и такой после конвертации знаков больше меньше в < > код уже не работает в моей Мозилле (1.0 RC кстати) И в Опере, хотя прекрасно работает в эксплорере. Подскажите пожалуйста, как решить сию проблему? з.ы. менять броузеры не предлагать, хочу, чтобы везде работало з.ы.ы. это вообще нужно, чтобы пользователю удобней вводить инфу было. В принципе если юзер введет буковки ничего страшного не случится, но хотелось бы лишний раз не передавать заведомо неправильную инфу на сервер. |
Автор: vot 27.04.02, 09:11 |
Выводи просто через принт. print qq~<input type="text" name="some_name" value="11" onkeypress="if ((event.keyCode < 48) || (event.keyCode > 57)) event.returnValue = false;" />~; |
Автор: jodaka 27.04.02, 13:52 |
нет, это не рашает проблему. Обходных путей конечно миллиард, но мне интересна причина, по которой CGI концертит < >, интересно можно ли это отключить как-нибудь в самом модуле CGI. Что говорит спецификация по этому поводу (может CGI всё верно делает и проблема в том, что броузеры некорректно спецификацию понимают)... |
Автор: vot 27.04.02, 14:19 |
Тогда оформляй в виде функции: onKeyPress=>"return myCoolFunc(event.keyCode);" |
Автор: jodaka 27.04.02, 17:10 |
а что это даст? все равно мне перед этим придется ещё и саму функцию тоже печатать, а при этом CGI в ней снова поменяет знаки < > Ну решил я попробовать _весь_ html, который у меня будет писать при помощи CGI. Оно в будущем меньше проблем будет, т.к. CGI уже сейчас мне xhtml выдает. Но вот какие-то дурацкие грабли вылезают |