gpt4 book ai didi

javascript - 如何在错误 onsubmit 后更改 HTML 文档而无需手动重新加载页面

转载 作者:行者123 更新时间:2023-11-28 08:53:08 26 4
gpt4 key购买 nike

我想在 onsubmit 事件处理程序返回 false 时更改 HTML 文档元素。

在函数validate()内部设置了一个cookie(顺便说一句,有没有比cookie更简单的方法?)。

Onload 事件处理程序 checkIfFalseSubmit() 检查 cookie 并运行更改文档的函数 changeDocument()

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>How change document after false onsubmit without manual page reloading</title>
<script type="text/javascript">
function validate() {
// http://www.javascripter.net/faq/settinga.htm
var today = new Date();
var expire = new Date();
expire.setTime(today.getTime() + 1000*5000);
document.cookie = "cookie1=a; expires=" + expire.toGMTString();
alert ("Always false - just for testing");
return false;
}

function changeDocument() {
myDiv.innerHTML = "Form validation failed";
}

// http://stackoverflow.com/questions/10730362/javascript-get-cookie-by-name
function getCookie(name) {
var parts = document.cookie.split(name + "=");
if (parts.length == 2) return parts.pop().split(";").shift();
}

function checkIfFalseSubmit() {
if ( getCookie("cookie1") == "a")
changeDocument();
}
</script>
</head>

<body onload="checkIfFalseSubmit()">
<div id="myDiv">Before Submit</div>

<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post" name="f" onsubmit="return validate();" >
<input type="text" name="myName" /><br/>
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>

问题是 onload 仅在我手动重新加载页面时发生。如果不重新加载,则会显示警报,但文档保持不变。

为了我的目的,我应该使用另一个事件来代替 onload 吗?还有其他方法可以实现我的目标吗?

最佳答案

我认为这太复杂了。您不必使用 cookie 和 body onload 事件。只需在表单提交时调用 validate() 并调用 changeDocument() 即可显示您的消息。

validate() 内部,如果验证失败,则在返回 false 之前调用 changeDocument()

关于javascript - 如何在错误 onsubmit 后更改 HTML 文档而无需手动重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18883887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com