Javascript 无法保留窗体调用的函数创建的值
我几乎完成了用JavaScript制作这个测试应用程序。基本上,它是一把剪刀,当你点击其中一个按钮时,它会将值发送到JavaScript,并将值与使用Math.random()的计算机的值进行比较。然而,当我试图保留分数时,它会在提交后立即清除,即使它不是表单的一部分,而是由表单调用的。我没有告诉JavaScript刷新页面。代码如下:Javascript 无法保留窗体调用的函数创建的值,javascript,forms,Javascript,Forms,我几乎完成了用JavaScript制作这个测试应用程序。基本上,它是一把剪刀,当你点击其中一个按钮时,它会将值发送到JavaScript,并将值与使用Math.random()的计算机的值进行比较。然而,当我试图保留分数时,它会在提交后立即清除,即使它不是表单的一部分,而是由表单调用的。我没有告诉JavaScript刷新页面。代码如下: var playerAnswer; var computer; var z2 = document.getElementById("playScore").in
var playerAnswer;
var computer;
var z2 = document.getElementById("playScore").innerHTML;
var z3 = document.getElementById("compScore").innerHTML;
function getCompAnswer(){
var x = Math.random();
if(x >= 0 && x <= 0.333333333){computer = "Rock";}
if(x > 0.333333333 && x <= 0.666666666){computer = "Paper";}
if(x > 0.666666666 && x <= 1){computer = "Scissors";}
}
function retrievePlayerData(){
document.forms[0].submit();
var y1 = document.getElementById('rock').checked;
var y2 = document.getElementById('paper').checked;
var y3 = document.getElementById('scissors').checked;
if(y1 == true){playerAnswer = "Rock"}
if(y2 == true){playerAnswer = "Paper"}
if(y3 == true){playerAnswer = "Scissors"}
compareResults();
}
function compareResults(){
var z1 = document.getElementById("gamemsg").innerHTML;
if(playerAnswer == computer){z1 = "It was a tie; you both had " + computer.toLowerCase() + ".";}
if(playerAnswer == "Rock" && computer == "Paper"){z1 = "You lost; the computer had " + computer.toLowerCase() + ".";addComp();}
if(playerAnswer == "Paper" && computer == "Scissors"){z1 = "You lost; the computer had " + computer.toLowerCase() + ".";addComp();}
if(playerAnswer == "Scissors" && computer == "Rock"){z1 = "You lost; the computer had " + computer.toLowerCase() + ".";addComp();}
if(playerAnswer == "Rock" && computer == "Scissors"){z1 = "You won; the computer had " + computer.toLowerCase() + ".";addPlayer();}
if(playerAnswer == "Paper" && computer == "Rock"){z1 = "You won; the computer had " + computer.toLowerCase() + ".";addPlayer();}
if(playerAnswer == "Scissors" && computer == "Paper"){z1 = "You won; the computer had " + computer.toLowerCase() + ".";addPlayer();}
alert(z1);
getCompAnswer();
}
function addComp(){document.getElementById("compScore").innerHTML++;}
function addPlayer(){document.getElementById("playScore").innerHTML++;}
var播放器应答器;
var计算机;
var z2=document.getElementById(“playScore”).innerHTML;
var z3=document.getElementById(“compScore”).innerHTML;
函数getCompAnswer(){
var x=Math.random();
如果在提交html表单时(x>=0&&x 0.333333&&x 0.6666666&&x,它将清除所有javascript。提交操作就是这样做的
您可以:
不提交表单-只需将所有内容保存在页面的内存中即可
将表单提交到Web服务器,然后将数据填充回页面
将数据存储在cookie中,以便将其传递到服务器,然后再返回
将数据存储在客户端存储器中
(…我可能错过了一些选择)
从页面外观来看,您可能只需删除或注释掉以下行:
document.forms[0].submit();
当你提交一个html表单时,它会清除你所有的javascript。这就是提交操作的作用
您可以:
不提交表单-只需将所有内容保存在页面的内存中即可
将表单提交到Web服务器,然后将数据填充回页面
将数据存储在cookie中,以便将其传递到服务器,然后再返回
将数据存储在客户端存储器中
(…我可能错过了一些选择)
从页面外观来看,您可能只需删除或注释掉以下行:
document.forms[0].submit();
编辑:出于某种原因,这只适用于某些(非常精选的)平台。在我修复此问题的区域(Mozilla WebMaker:),它起作用了。但在实际的网页中,它不起作用。对不起
格式化很重要。
错误:
您关闭了
两次
在JS中,您忘记了3个分号(;)。
固定代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width" />
<title>Rock. Paper, Scissors</title>
石头,布,剪刀
选择一个:
岩石
纸张
剪刀
你
电脑
var PlayerAnwer;
var计算机;
var z2=document.getElementById(“playScore”).innerHTML;
var z3=document.getElementById(“compScore”).innerHTML;
函数getCompAnswer(){
var x=Math.random();
如果(x>=0&&x 0.333333&&x 0.6666666&&x编辑:出于某种原因,这只在某些(非常精选的)平台上有效。在我在(Mozilla WebMaker:)中修复的区域中,它有效。但在实际的网页中,它无效。抱歉
格式化很重要。
错误:
您关闭了
两次
在JS中,您忘记了3个分号(;)。
固定代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width" />
<title>Rock. Paper, Scissors</title>
石头,布,剪刀
选择一个:
岩石
纸张
剪刀
你
电脑
var PlayerAnwer;
var计算机;
var z2=document.getElementById(“playScore”).innerHTML;
var z3=document.getElementById(“compScore”).innerHTML;
函数getCompAnswer(){
var x=Math.random();
如果(x>=0&&x 0.333333&&x 0.6666666&&x谢谢!删除那一行做得很好。:)我认为如果表单没有提交,值就不会被存储,但我很高兴我错了。谢谢!删除那一行做得很好。:)我原以为如果不提交表单,这些值就不会被存储,但我很高兴我错了。