Вы не можете оценить JavaScript в Jinja. Вы пытаетесь создать URL-адрес на стороне сервера, в то время как Jinja выполняет рендеринг, но вы ссылаетесь на переменную, которая доступна только в JavaScript, запущенном в клиентском браузере.
Создание URL-адреса клиента сторона является самым простым исправлением. (Я не знаю, как выглядит ваш маршрут, так что вот пример.)
$('#demo').load('/url/for/addshare2/' + variable1);
Однако это не очень полезно, потому что вы не можете использовать url_for
, поэтому вам нужно hard-code url. Это хороший признак того, что вы хотите, чтобы конечная точка AJAX передавала параметры, а не конечную точку, которая содержит значения.
@app.route('/addshare2', methods=['POST'])
def addshare2():
share = request.json['share']
...
return jsonify(result=...)
Теперь вы можете сгенерировать URL с url_for
и пройти параметры как данные формы.
$.post(
'{{ url_for('addshare2') }}',
{share: variable1},
function (data) {
// do something with data on successful response
}
);
Первое предложение могло бы все еще работать, потому что можно заставить обратную передачу запускать использование JavaScript после того, как проверка происходит.
JavaScript:
__doPostBack('<%= YourImageControl.UniqueID %>','');
второй пустой параметр может использоваться для передачи аргументов.
Не уверенный, если это поможет, но даст ему выстрел...
http://docs.jquery.com/Plugins/Validation/validate#options
$("input[type=image]").click(function() {
$($(this).parents(form)).validate();
});
Вы, возможно, должны были бы заменить "форму" чем-то более определенным, но я пытался получить его максимально точный, не зная, как все размечается на Вашей странице. Ответ, если это помогает!