Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法保留窗体调用的函数创建的值_Javascript_Forms - Fatal编程技术网

Javascript 无法保留窗体调用的函数创建的值

Javascript 无法保留窗体调用的函数创建的值,javascript,forms,Javascript,Forms,我几乎完成了用JavaScript制作这个测试应用程序。基本上,它是一把剪刀,当你点击其中一个按钮时,它会将值发送到JavaScript,并将值与使用Math.random()的计算机的值进行比较。然而,当我试图保留分数时,它会在提交后立即清除,即使它不是表单的一部分,而是由表单调用的。我没有告诉JavaScript刷新页面。代码如下: var playerAnswer; var computer; var z2 = document.getElementById("playScore").in

我几乎完成了用JavaScript制作这个测试应用程序。基本上,它是一把剪刀,当你点击其中一个按钮时,它会将值发送到JavaScript,并将值与使用Math.random()的计算机的值进行比较。然而,当我试图保留分数时,它会在提交后立即清除,即使它不是表单的一部分,而是由表单调用的。我没有告诉JavaScript刷新页面。代码如下:

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谢谢!删除那一行做得很好。:)我认为如果表单没有提交,值就不会被存储,但我很高兴我错了。谢谢!删除那一行做得很好。:)我原以为如果不提交表单,这些值就不会被存储,但我很高兴我错了。