Сбой вызова web2py ajax со страниц, отличных от индекса - PullRequest
1 голос
/ 15 октября 2011

Я использую функцию 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))

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

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

Например, я перемещаю код из 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 Ответ

1 голос
/ 15 октября 2011

Попробуйте

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