提交表单后禁用 chrome 弹出窗口“离开站点?您所做的更改可能不会保存”

问题描述 投票:0回答:2

我有一个简单的表单,用户可以在其中选择一个将保存在数据库中的值。 HTML

<form  method="get" >
        <div class="select-block1">
            <select name="proximID" onchange="this.form.submit(); ">
                <option value="" disabled selected> Votre Proxim'IT</option>
                <?php foreach ($results as $output){?>

                <option value="<?php echo $output['id']; ?>"> <?php echo $output["first_name"], $output["last_name"]; ?></option>
                <?php } ?>
            </select>
         
        </div>
    </form>

PHP

<?php 
if(!empty($_GET['proximID'])) { 

$stmt6 = $pdo1->query("UPDATE proximit SET ProximID = {$_GET['proximID']} "); ?>

当我选择一个值时,弹出窗口出现“离开站点?”您所做的更改可能不会被保存”。请问如何禁用 chrome 的此弹出窗口

javascript html
2个回答
0
投票

显示该弹出窗口是因为

onsubmit
事件触发页面刷新,页面刷新也调用
onbeforeunload
事件。

来自文档: 当窗口、文档及其资源即将被卸载时,会触发 beforeunload 事件。该文档仍然可见,并且此时活动仍然可以取消。

要控制此弹出窗口,您需要修改此事件。

id
标签添加
<form>
属性

<form  method="get" id="selectForm" >

分配

onChange
功能

<select name="proximID" onchange="onSelectHandler();">

触发

function onSelectHandler() {
    const form = document.getElementById('selectForm');
    window.onbeforeunload = null;
    form.submit();
}    

0
投票

这个答案对我很有用,非常感谢

© www.soinside.com 2019 - 2024. All rights reserved.