Flask点击按钮无需JavaScript打开新页面的实现方法
无JavaScript实现方案
直接用HTML原生表单属性就能实现,不需要写任何JS代码。
修改步骤
找到包裹你这张表格的<form>标签,给它加上target="_blank"属性就可以,原有按钮的逻辑完全不用动。
修正后完整代码参考:
<form method="post" target="_blank"> <table> <tbody> {% for item in rows %} <tr> <td>{{ item[0] }}</td> <td> <button formaction="/stockpopup" type="submit" name="stock" value="{{ item[11] }}"> {{ item[11] }}</button> </td> <td>{{ item[1] }}</td> </tr> {% endfor %} </tbody> </table> </form>
注意点
target="_blank"写在form标签上时,作用是指定当前表单所有提交请求的响应加载位置,设置为这个值就会让响应在新标签页打开,和a标签的同名属性效果一致- 你写在按钮上的
formaction属性不会受这个属性影响,点击按钮依然会正常把选中的stock值提交到/stockpopup端点 - 原代码里Jinja模板写的
value = {{item[11] }}有语法错误,记得改成value="{{ item[11] }}"`,不然值包含空格、特殊字符的时候会出现提交参数不对的问题 - 如果页面上还有其他表单不希望新标签页打开,只需要把这块表格和对应按钮单独放在这个带
target="_blank"的form里就行,不会干扰其他表单的正常跳转
内容的提问来源于stack exchange,提问作者James2021
相关产品推荐
相关产品推荐

