javascript - 我在将数据推送到另一个 HTML 页面时遇到问题
问题描述
我无法让我的值转到另一个 html 页面。我验证了字段,填写完字段后,我们单击保存数据不会转到新的 html。
在新的 html 中只显示 Welcome。
这是我们第一个输出名字的 HTML
function parse() {
var n = document.getElementById("nam").value;
localStorage.setItem("textvalue", n);
return false;
}
function validations(form) {
function trimfield(str) {
return str.replace(/^\s+|\s+$/g, '');
}
var errors = [];
var n = document.getElementById("nam").value;
if (n == "") {
errors.push("Enter Name \n");
}
if (errors.length > 0) {
var msg = "Errors : \n\n";
for (var i = 0; i < errors.length; i++) {
msg = msg + errors[i];
}
alert(msg);
return false;
}
}
<!DOCTYPE HTML >
<html>
<head>
<title> User Registration Page</title>
<link href="UserRegistration.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body>
<form action="UserInfo.html" method="POST" onsubmit="return validations(this);" onsubmit="return parse();">
<div class="name">
Name : <input type="text" id="nam" name="fullName">
</div>
<button type="submit" class="btn btn-primary btn-lg">Save</button>
</form>
</body>
</html>
这是我无法显示我的姓名(UserInfo.html)的第二个 html
<html>
<body>
Welcome : <span id= "result"> </span>
<script>
document.getElementById("result").innerHTML = localStorage.getItem("textvalue");
</script>
</body>
</html>
解决方案
不要使用两个 onsubmit 属性。将所有功能聚合到一个中,然后执行它。我已将解析函数与验证合并。这是同一件事。此外,您从未提交过表单。这就是为什么函数也不会被触发的原因。也使用提交按钮。它应该在表单标签内。不在外面
<!DOCTYPE HTML >
<html>
<head>
<title> User Registration Page</title>
<link href="UserRegistration.css" rel= "stylesheet" type="text/css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script>
function trimfield(str) {
return str.replace(/^\s+|\s+$/g,'');
}
function validations(form) {
var errors = [] ;
var n = document.getElementById("nam").value;
if (n == "") {
errors.push("Enter Name \n");
}
if (errors.length > 0) {
var msg = "Errors : \n\n" ;
for (var i = 0 ; i<errors.length; i++ ){
msg = msg + errors[i];
}
alert(msg);
}else{
localStorage.setItem("textvalue", n);
alert(localStorage.getItem("textvalue"));
return false;
}
}
</script>
</head>
<body>
<form action="UserInfo.html" method="POST" onsubmit="validations(this);">
<div class = "name" >
Name : <input type ="text" id="nam" name="fullName" >
</div>
<button type="submit" class="btn btn-primary btn-lg">Save</button>
</form>
</body>
</html>
另外,不知道您在哪里调用修剪字段。在任何其他函数之外声明它并在任何你想要的地方使用它。
推荐阅读
- javascript - JS打开新窗口,N秒后关闭新窗口
- c# - VB.NET 中是否有等效的“动态”类型或其他方式来实现相同的行为?
- elasticsearch - 我可以根据来自另一个查询的数据将计算布尔列添加到 Elasticsearch Kibana 查询吗?
- office-js - 使用 office js 将自定义图标添加到收件箱摘要
- windows - 如何修复:“Git”不是 CMD 的识别命令,但 git comman 在 GIT CMD CLI 中有效?
- optimization - 给定一些约束,最小化两个列表元素的峰值差异
- javascript - 用数组javascript查找最长的字谜
- r - 从 CSV 文件在 R 中创建 SQLite DB:为什么 DB 文件为 0KB 且不包含表?
- javascript - 仅在单击按钮时才反应更新状态,而不是在输入中写入内容时更新状态
- java - 重新排列最后N - Java