在Flask网站上,有一个有关如何使用AJAX的教程,该示例显示了两个数字的和。
这是python应用
从flask导入Flask,render_template,请求,jsonify
# Initialize the Flask application
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/_add_numbers')
def add_numbers():
a = request.args.get('a', 0, type=int)
b = request.args.get('b', 0, type=int)
return jsonify(result=a + b)
if __name__ == '__main__':
app.run(
host="0.0.0.0",
port=int("80"),
debug=True
)
这是HTML文件
<!DOCTYPE html>
<html lang="en">
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css"
rel="stylesheet">
<script type=text/javascript>
$(function() {
$('a#calculate').bind('click', function() {
$.getJSON('/_add_numbers', {
a: $('input[name="a"]').val(),
b: $('input[name="b"]').val()
}, function(data) {
$("#result").text(data.result);
});
return false;
});
});
</script>
</head>
<body>
<div class="container">
<div class="header">
<h3 class="text-muted">How To Manage JSON Requests</h3>
</div>
<hr/>
<div>
<p>
<input type="text" size="5" name="a"> +
<input type="text" size="5" name="b"> =
<span id="result">?</span>
<p><a href="javascript:void();" id="calculate">calculate server side</a>
</form>
</div>
</div>
</body>
</html>
我看到,通过此示例,每次单击链接时,便可以向服务器发送请求,但是,我想知道是否可以跳过此步骤并获得请求,从而使用户输入的文本发生变化。
请您参考如下方法:
是。这很浪费资源,但是您可以更改$('a#calculate').bind('click', function() {至$('input[name="a"]').change(function() {
并对输入b执行相同的操作
编辑:
并且,根据您的输入进行测试:$('input[name="a"]').on('input',function(e){
要么:$('input[name="a"]').keyup(function(e){


