Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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 onkeydown函数运行,然后显示消失_Javascript_Forms_Function_Onkeydown - Fatal编程技术网

Javascript onkeydown函数运行,然后显示消失

Javascript onkeydown函数运行,然后显示消失,javascript,forms,function,onkeydown,Javascript,Forms,Function,Onkeydown,第一次在网站上,无论如何,我的问题是,当我使用onkeydown然后使用GetChar检查是否按下了enter键时,当操作运行时,函数的结果只在屏幕上显示大约一秒钟,然后消失,如果用户使用onclick(单击enter按钮),那么这个问题就不会发生。当使用onkeydown时,如何获得留在屏幕上的操作结果。如果你想了解我的意思,网站是sqrtcalc.comze.com 平方根计算器 函数操作(表格){ var x=form.inputbox.value; if(isNaN(x)){ //

第一次在网站上,无论如何,我的问题是,当我使用onkeydown然后使用GetChar检查是否按下了enter键时,当操作运行时,函数的结果只在屏幕上显示大约一秒钟,然后消失,如果用户使用onclick(单击enter按钮),那么这个问题就不会发生。当使用onkeydown时,如何获得留在屏幕上的操作结果。如果你想了解我的意思,网站是sqrtcalc.comze.com


平方根计算器
函数操作(表格){
var x=form.inputbox.value;
if(isNaN(x)){
//书面文件(“法律”);
var y=“输入一个数字”;
document.getElementById(“故障保护”).innerHTML=y;
document.getElementById(“demo”).innerHTML=“”;
}else如果(x<0){
var y=“数字必须为正”;
document.getElementById(“故障保护”).innerHTML=y;
document.getElementById(“demo”).innerHTML=“”;
}如果(x==“”),则为else{
var y=“嗯,您没有输入任何内容”;
document.getElementById(“故障保护”).innerHTML=y;
document.getElementById(“demo”).innerHTML=“”;
}否则{
变量y=数学功率(x,1/2)
document.getElementById(“demo”).innerHTML=“x+的平方根是”+y;
document.getElementById(“故障保护”).innerHTML=“”;
}
}
函数GetChar(事件、表单){
var keyCode=event.keyCode;
如果(键代码==13){
操作(表格);
}
}

平方根计算器























添加此代码:

        window.onload = function(){
            document.getElementById("myform").onsubmit = function(){
                return false;
            }
        }

并将id属性
id=“myform”
添加到
标记中。

我对代码进行了一些重构:

  • 我删除了你的内联函数(内联JS并不是最好的 (实习)
  • 我在您的表单中添加了一个ID,以便可以引用它
  • 我添加了
    返回false以防止表单提交
  • onsubmit处理单击和输入
Javascript

document.getElementById('myform').onsubmit = function() {
    var x = this.inputbox.value;

    if (isNaN(x)) {
        //document.write("lawl");
        var y = "Enter a number";
        document.getElementById("failsafe").innerHTML = y;
        document.getElementById("demo").innerHTML = "";
    } else if (x < 0) {
        var y = "Number must be positive";
        document.getElementById("failsafe").innerHTML = y;
        document.getElementById("demo").innerHTML = "";
    } else if (x == "") {
        var y = "uhm, you didnt enter anything";
        document.getElementById("failsafe").innerHTML = y;
        document.getElementById("demo").innerHTML = "";
    } else {
        var y = Math.pow(x, 1 / 2)
        document.getElementById("demo").innerHTML = "The square root of " + x + " is " + y;
        document.getElementById("failsafe").innerHTML = "";
    }

    return false;
}​
document.getElementById('myform')。onsubmit=function(){
var x=this.inputbox.value;
if(isNaN(x)){
//书面文件(“法律”);
var y=“输入一个数字”;
document.getElementById(“故障保护”).innerHTML=y;
document.getElementById(“demo”).innerHTML=“”;
}else如果(x<0){
var y=“数字必须为正”;
document.getElementById(“故障保护”).innerHTML=y;
document.getElementById(“demo”).innerHTML=“”;
}如果(x==“”),则为else{
var y=“嗯,您没有输入任何内容”;
document.getElementById(“故障保护”).innerHTML=y;
document.getElementById(“demo”).innerHTML=“”;
}否则{
变量y=数学功率(x,1/2)
document.getElementById(“demo”).innerHTML=“x+的平方根是”+y;
document.getElementById(“故障保护”).innerHTML=“”;
}
返回false;
}​
HTML

<form name="myform" action="" method="get" style="font-size:50px" id="myform"><strong>Square Root Calculator</strong><br>
    <br>
<input type="text" name="inputbox"> <br>
    <br>
<input id="button" type="submit" name="button" value="     Enter      ">
</form>

<h1 id="failsafe"></h1>

<h1 id="demo"></h1>
平方根计算器




你能提供一份工作吗?“最小化带宽-例如,不要让观众厌烦”您单击表单中的按钮,这意味着您实际上是在提交表单。您需要禁用表单提交,这样您就不会进行完整的服务器往返。
















这太疯狂了,我甚至不相信它是有效的。请改用

,不要将其用于任意间距!使用CSS页边距或其他方法。@timeshift 117如果解决了您的问题,接受答案是Stackoverflow的标准做法。看来我和hebikuzure的答案都对你有用。所以请随意接受一个。。。oh和up投票是免费的,表示赞赏。
document.getElementById('myform').onsubmit = function() {
    var x = this.inputbox.value;

    if (isNaN(x)) {
        //document.write("lawl");
        var y = "Enter a number";
        document.getElementById("failsafe").innerHTML = y;
        document.getElementById("demo").innerHTML = "";
    } else if (x < 0) {
        var y = "Number must be positive";
        document.getElementById("failsafe").innerHTML = y;
        document.getElementById("demo").innerHTML = "";
    } else if (x == "") {
        var y = "uhm, you didnt enter anything";
        document.getElementById("failsafe").innerHTML = y;
        document.getElementById("demo").innerHTML = "";
    } else {
        var y = Math.pow(x, 1 / 2)
        document.getElementById("demo").innerHTML = "The square root of " + x + " is " + y;
        document.getElementById("failsafe").innerHTML = "";
    }

    return false;
}​
<form name="myform" action="" method="get" style="font-size:50px" id="myform"><strong>Square Root Calculator</strong><br>
    <br>
<input type="text" name="inputbox"> <br>
    <br>
<input id="button" type="submit" name="button" value="     Enter      ">
</form>

<h1 id="failsafe"></h1>

<h1 id="demo"></h1>