На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> CGI.pm + javascript = troubles
    возникла проблемка небольшая с тем, что при 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 кстати) И в Опере, хотя прекрасно работает в эксплорере. Подскажите пожалуйста, как решить сию проблему?

    з.ы. менять броузеры не предлагать, хочу, чтобы везде работало

    з.ы.ы. это вообще нужно, чтобы пользователю удобней вводить инфу было. В принципе если юзер введет буковки ничего страшного не случится, но хотелось бы лишний раз не передавать заведомо неправильную инфу на сервер.
    Сообщение отредактировано: jodaka -
      Выводи просто через принт.
      print qq~<input type="text" name="some_name" value="11" onkeypress="if ((event.keyCode < 48) || (event.keyCode > 57)) event.returnValue = false;" />~;

        нет, это не рашает проблему. Обходных путей конечно миллиард, но мне интересна причина, по которой CGI концертит < >, интересно можно ли это отключить как-нибудь в самом модуле CGI. Что говорит спецификация по этому поводу (может CGI всё верно делает и проблема в том, что броузеры некорректно спецификацию понимают)...
          Тогда оформляй в виде функции:
          onKeyPress=>"return myCoolFunc(event.keyCode);"
            а что это даст? все равно мне перед этим придется ещё и саму функцию тоже печатать, а при этом CGI в ней снова поменяет знаки < >
            Ну решил я попробовать _весь_ html, который у меня будет писать при помощи CGI. Оно в будущем меньше проблем будет, т.к. CGI уже сейчас мне xhtml выдает. Но вот какие-то дурацкие грабли вылезают
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0182 ]   [ 15 queries used ]   [ Generated: 28.03.24, 21:06 GMT ]