You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jQuery将HTML中的option标签内容发送至Flask框架

解决将选中的Option内容发送到Flask后端的问题

我看你现在尝试用jQuery把客户端选中的Option内容传给Flask后端处理,不过现有代码里可能有几个小问题需要调整,我帮你梳理下并给出完整的实现方案:

一、修正前端代码(interactive.html)

首先,你现有代码里的选择器可能不对——如果是下拉选择框(<select>),不能用input选择器,得换成select;另外如果要获取选中Option的显示文本(不是它的value属性值),得用.text()方法,而不是.val()。我把完整的前端代码给你写出来:

<!DOCTYPE html>
<html>
<head>
    <title>Flask Option Demo</title>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js?version=3"></script>
    <script type=text/javascript>
        $(function() {
            // 绑定点击事件
            $('a#process_input').bind('click', function() {
                // 获取选中的Option文本
                const selectedText = $('select[name="select_classifier"] option:selected').text();
                // 或者如果要获取Option的value值,用下面这行:
                // const selectedValue = $('select[name="select_classifier"]').val();
                
                // 发送GET请求到Flask后端
                $.getJSON('/background_process', {
                    select_classifier: selectedText
                    // 如果传value值就换成selectedValue
                }, function(data) {
                    // 把后端返回的结果显示到页面
                    $("#result").text(data.result);
                });
                // 阻止a标签默认跳转行为
                return false;
            });
        });
    </script>
</head>
<body>
    <!-- 下拉选择框 -->
    <select name="select_classifier">
        <option value="1">分类器A</option>
        <option value="2">分类器B</option>
        <option value="3">分类器C</option>
    </select>
    <!-- 触发请求的按钮/链接 -->
    <a href="#" id="process_input">提交选中内容</a>
    <!-- 显示结果的区域 -->
    <div id="result"></div>
</body>
</html>

这里要注意几个点:

  • 一定要给<select>标签加上name="select_classifier",和你JS里的选择器对应上
  • 如果不需要文本,只需要Option的value,直接用$('select[name="select_classifier"]').val()就行,更简洁
  • 加上return false;阻止a标签的默认跳转,避免页面刷新

二、Flask后端处理代码

接下来是Flask的路由部分,需要接收前端传过来的select_classifier参数,处理后返回JSON格式的结果:

from flask import Flask, request, jsonify, render_template

app = Flask(__name__)

@app.route('/')
def index():
    # 渲染前端页面
    return render_template('interactive.html')

@app.route('/background_process')
def background_process():
    # 获取前端传过来的参数
    selected_content = request.args.get('select_classifier', '')
    # 这里写你的业务处理逻辑,比如根据选中内容做计算/查询等
    processed_result = f"你选中了:{selected_content}"
    # 返回JSON结果
    return jsonify(result=processed_result)

if __name__ == '__main__':
    app.run(debug=True)

三、测试步骤

  1. 确保你的项目结构是这样的:
your_project/
├── app.py
└── templates/
    └── interactive.html
  1. 启动Flask应用:python app.py
  2. 访问http://localhost:5000,选择下拉选项,点击“提交选中内容”,就能看到后端返回的结果显示在页面上了

如果还有其他需求,比如要改用POST请求(适合传递敏感数据或大量内容),随时说我再帮你调整代码~

内容的提问来源于stack exchange,提问作者Mr. Wizard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:22:22