【问题标题】:how to have a javascript popup on form submission and an action if javascript is disabled in the browser? [duplicate]如果在浏览器中禁用 javascript,如何在表单提交时弹出 javascript 和操作? [复制]
【发布时间】:2021-07-07 08:49:09
【问题描述】:

我有以下重定向到确认页面的表单,我想在浏览器中禁用 javascript 时保持这种行为,但是当启用 javascript 时,我想使用弹出窗口进行确认。 当启用 javascript 以仅显示确认弹出窗口时,如何禁用表单操作? ps:我必须使用jquery ui-lightness 插件,这就是我不使用引导模式的原因。

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link href="lib/jquery-ui-1.12.1.ui-lightness/jquery-ui.min.css" rel="stylesheet" type="text/css" />
    <link href="lib/jquery-ui-1.12.1.ui-lightness/jquery-ui.theme.min.css" rel="stylesheet" type="text/css" />
    <link href="lib/jquery-ui-1.12.1.ui-lightness/jquery-ui.structure.min.css" rel="stylesheet" type="text/css" />
    <script src="lib/jquery-3.6.0.min.js" type="text/javascript"></script>
    <script src="lib/jquery-ui-1.12.1.ui-lightness/jquery-ui.min.js" type="text/javascript"></script>
</head>
<body>
    <script>
        $("#btn_trash").click(function() {
            var ret = null;
            $('#confirmDialog').dialog({
                resizable: false,
                height: 300,
                width: 500,
                modal: true,
                autoOpen: true,
                buttons: {
                    Oui: function() {
                        ret = "yes";
                        $(this).dialog("close");
                    },
                    Non: function() {
                        ret = "no";
                        $(this).dialog("close");
                    }
                },
                close: function() {
                    if (ret !== null)
                        $("#content").html("You answered <b>" + ret + "</b>.");
                    else
                        $("#content").html("You didn't answer.");
                }
            });
        });
    </script>


    <form id="delete_board_form" action='board/submit_delete' method='post'>
        <input type='text' name='delete' value='<?= $board->id ?>' hidden>
        <button id="btn_trash" class="btn" type="Submit">
          <svg class="bi text-white" width="20" height="20">
            <use xlink:href="assets/ressources/bootstrap-icons/bootstrap-icons.svg#trash" />
          </svg>
        </button>
    </form>
    <div id="content"></div>
    <div id="confirmDialog" title="Attention" hidden>
        <p>Confirmez-vous le lancement de cette opération irréversible ?</p>
    </div>

</body>

【问题讨论】:

  • 您的问题归结为“如何防止使用 JavaScript 提交表单”,这很容易研究。
  • @CBroe 谢谢你的帮助,我没有用这些术语搜索。在用您的术语进行研究之后,您很快就找到了答案!

标签: javascript jquery forms popup


【解决方案1】:

对我有用的是使用 event.preventDefault()

<form id="delete_board_form" action='board/submit_delete' method='post' onsubmit="event.preventDefault()">
        <input type='text' name='delete' value='<?= $board->id ?>' hidden>
        <button id="btn_trash" class="btn" type="Submit">
          <svg class="bi text-white" width="20" height="20">
            <use xlink:href="assets/ressources/bootstrap-icons/bootstrap-icons.svg#trash" />
          </svg>
        </button>
    </form>
    <div id="content"></div>
    <div id="confirmDialog" title="Attention" hidden>
        <p>Confirmez-vous le lancement de cette opération irréversible ?</p>
    </div>
    ````

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    • 2017-10-10
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多