微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Javascript 中保留消息值

如何解决如何在 Javascript 中保留消息值

我对 Javascript 很陌生,所以我寻求帮助,因为不知何故我被卡住了。

我不希望页面刷新后输入字段变空 - 通过复制和粘贴代码部分,我可以通过使用 sessionStorage + setItem / getItem 部分解决它。

现在我希望相应的消息也不会变空 - 当我刷新页面时它会消失。获取消息的最简单方法是什么?感谢您的帮助!

javascript:

let userInput;
let messageUserText;
var validUser = false;

onload = function (event) {   
userInput = document.getElementById('usernameInput');
messageUserText = document.getElementById('userMsg');
}

function InputUser() {
 const userName = usernameInput.value;
 let messageUserName = '';

 if (userName === '') {
    messageUserName = 'EMPTY';
    validUser = false;
 }  else {
    messageUserName = 'OK';
    validUser = true;
 }
 //THIS IS THE MESSAGE I WANT TO KEEP
 messageUserText.innerHTML = messageUserName;
}

//KEEP INPUT AFTER SITE REFRESH
document.getElementById("usernameInput").value = getSavedValue("usernameInput");
//SAVE VALUE
function saveValue(e){
 var id = e.id;  
 var val = e.value;
 sessionStorage.setItem(id,val);    
}
//RETURN SAVED VALUE
function getSavedValue (v){
 if (!sessionStorage.getItem(v)) {
    return "";
 }
 return sessionStorage.getItem(v);
}

html:

<body>
<form>
  
<input type="text" id="usernameInput" oninput="InputUser()" onkeyup="saveValue(this)">

</form>
<!-- THIS IS THE MESSAGE I WANT TO KEEP AFTER REFRESH -->
<div class=""><p id="userMsg"></p></div>

<script src="javascript.js"></script>
</body>

解决方法

我尝试了很多并且已经部分解决了它。现在它能够保存输入和关联的消息以在站点刷新后保留它们。 但是我需要帮助来保持消息颜色和提交按钮的状态。我做了一些尝试,但无法让它继续。请问有人能告诉我怎么写代码吗?我在下面评论了。

Javascript:

.
.
.
onload = function (event) {
   userInput           = document.getElementById('usernameInput');
   messageUserText     = document.getElementById('userMsg');
   setPasswordButton   = document.getElementById('passwordButton');    
}

function InputUser() {
const userName      = usernameInput.value;
let messageUserName = '';

if (userName === '') {
    messageUserText.style.color = 'red';
    messageUserName = 'Message 1';
    validUser = false;         
}  else {
    messageUserText.style.color = 'green';
    messageUserName = 'Message 2';
    validUser = true;
}
messageUserText.innerHTML = messageUserName;

//Save Message to sessionStorage
var idUserMsg = userMsg.id;
var valUserMsg = messageUserText.innerHTML;
sessionStorage.setItem(idUserMsg,valUserMsg);
//Save Message Color (messageUserText.style.color)
//How?

//Button Activation
if (validUser) {
    setPasswordButton.disabled = false;
} else {
    setPasswordButton.disabled = true;
}
//Save Button state (setPasswordButton.disabled)
//How?
}

//Keep Inputs after site refresh
document.getElementById("usernameInput").value = getSavedValue("usernameInput");
document.getElementById("userMsg").innerHTML = getSavedValue("userMsg");
//Keep Message Color How?
//Keep Button state How?

//Save sessionStorage
function saveValue(e){
   var id = e.id;  
   var val = e.value; 
   sessionStorage.setItem(id,val);
}
//Return from sessionStorage
function getSavedValue  (v){
   if (!sessionStorage.getItem(v)) {
     return "";
   }
   return sessionStorage.getItem(v);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?