сбой ajax-вызова web2py со страниц, отличных от индекса

#web2py

#web2py

Вопрос:

Я использую функцию web2py ajax, например:

В index.html

 {{=INPUT(_name='total_buy', _onkeyup=
  "ajax('key',['total_buy'], ':eval')")}}

<div id="target"></div>
  

и в default.py

 def key():
return "jQuery('#target').html('%s');" % repr(float(request.vars.total_buy))
  

Это работает отлично. Когда число вводится в поле ввода, оно немедленно передается целевому div.

Однако, когда я копирую это на другую страницу, он перестает работать. Я не вижу, чтобы номер ввода повторялся.

Например, я перемещаю код с index.html чтобы plan.html и оставьте все остальное нетронутым, я продолжаю видеть эхо на странице индекса, но не на странице нового плана.

Взглянув на журнал сервера, я вижу это:

 127.0.0.1, 2011-10-15 13:55:50, POST, /medaim/default/key, HTTP/1.1, 200, 0.047000
127.0.0.1, 2011-10-15 13:55:52, POST, /medaim/default/key, HTTP/1.1, 200, 0.047000
127.0.0.1, 2011-10-15 13:55:52, POST, /medaim/default/key, HTTP/1.1, 200, 0.078000
127.0.0.1, 2011-10-15 13:55:59, GET, /medaim/default/plan/1, HTTP/1.1, 200, 0.094000
127.0.0.1, 2011-10-15 13:56:01, POST, /medaim/default/plan/key, HTTP/1.1, 500, 0.250000
127.0.0.1, 2011-10-15 13:56:01, POST, /medaim/default/plan/key, HTTP/1.1, 500, 0.218000
127.0.0.1, 2011-10-15 13:56:02, POST, /medaim/default/plan/key, HTTP/1.1, 500, 0.265000
  

Похоже, что со страницы плана он вызывает /medaim/default/plan/key, а не /medaim/default/key

Как мне с этим справиться?

Ответ №1:

Попробуйте

 {{=INPUT(_name='total_buy', _onkeyup=
    "ajax('%s', ['total_buy'], ':eval')" % URL('default', 'key'))}}