【问题标题】:How to send confirm "ok" / ""cancel" from JS to Flask如何从 JS 向 Flask 发送确认“ok”/“”cancel”
【发布时间】:2021-05-26 12:33:52
【问题描述】:

我正在尝试找到一种“收集”用户输入的方法,例如,如果用户在 JS 确认窗口中按下“确定”,我想在 python 的烧瓶中接收“真”和“假”如果用户按下“取消”。

我有这个JS函数的部分:

<script>
    function confirmBooking(elem) {
        if(confirm('Are you sure you want to book this slot?') == true) {
            //elem = 1;
            alert("its done: " + elem);            
        }
        else { 
            return 0;
        }          
    }
</script>

现在在“表单”方面我有这个:

<form method="post"> 
     <button type="submit" name="free_button" value="free_button" onClick="confirmBooking('{{ booking_slot }}')"> Free </button> 
</form>

所以,在这里,booking_slot 是一个包含一些字符串的 Python 变量。如果用户分别选择“确定”或“取消”,我想要一些方法来为 Flask 端的变量设置 True/False 值。

有什么方法可以做到这一点?谢谢。

【问题讨论】:

    标签: javascript python flask server-side flask-wtforms


    【解决方案1】:

    您需要创建一个函数来收集或获取从前端到后端的输入。我通常使用这种技术。

    <form action="{{url_for('/collect')}}" method="post"> 
         <input type="hidden" id="userInput" name="userInput"> 
         <button type="submit" name="free_button" value="free_button" onClick="confirmBooking('{{ booking_slot }}')"> Free </button> 
    </form>

    <script>
        function confirmBooking(elem) {
            if(confirm('Are you sure you want to book this slot?') == true) {
                //elem = 1;
                alert("its done: " + elem); 
                document.getElementById("userInput").value = "True";
            }
            else { 
                 document.getElementById("userInput").value = "False";
                 return 0;
            }          
        }
    </script>
    @app.route('/collect',methods=["POST"])
    def collect():
        if request.method =="POST":
            userInput = request.form.get("userInput")
        return render_template('<template here>',userInput=userInput)
    

    【讨论】:

    • 谢谢。这正是我想要的。效果很好。
    猜你喜欢
    • 2016-05-30
    • 2023-04-03
    • 1970-01-01
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多