如果在浏览器中禁用 javascript,如何在表单提交时弹出 javascript 和操作? [复制]
Posted
技术标签:
【中文标题】如果在浏览器中禁用 javascript,如何在表单提交时弹出 javascript 和操作? [复制]【英文标题】:how to have a javascript popup on form submission and an action if javascript is disabled in the browser? [duplicate] 【发布时间】: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" >
<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 谢谢你的帮助,我没有用这些术语搜索。在用您的术语进行研究之后,您很快就找到了答案! 【参考方案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" >
<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>
````
【讨论】:
以上是关于如果在浏览器中禁用 javascript,如何在表单提交时弹出 javascript 和操作? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式检测是不是在 Windows 桌面应用程序中启用/禁用了 javascript? (网络浏览器控件)