Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.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 |输入键第一次应按下按钮,第二次应按下标签或url_Javascript - Fatal编程技术网

Javascript |输入键第一次应按下按钮,第二次应按下标签或url

Javascript |输入键第一次应按下按钮,第二次应按下标签或url,javascript,Javascript,第一次按键盘时,回车键应该执行按钮(id=“botonCorregir”)。但第二次按enter键时,应该执行url()。 我使用cont,第一次执行javascript代码的一部分,当de cont值为1时,执行javascript代码的第二部分。 因为某些错误,它不起作用 谢谢 HTML: 回复 JAVASCRIPT: <script> var cont=0; if(cont==0){ //Should enter the first press of enter

第一次按键盘时,回车键应该执行按钮(id=“botonCorregir”)。但第二次按enter键时,应该执行url()。 我使用cont,第一次执行javascript代码的一部分,当de cont值为1时,执行javascript代码的第二部分。 因为某些错误,它不起作用

谢谢

HTML:


回复
JAVASCRIPT:

<script>
var cont=0;
if(cont==0){
//Should enter the first press of enter
      var input = document.getElementById("respuestaUsuario"); 
    console.log('input: ', input)
    input.addEventListener("keyup", function(event) {
      if (event.keyCode == 13) {
       event.preventDefault();
       document.getElementById("botonCorregir").click();
      }
    });
    cont++;
}else{
//Should enter the second press of enter
    if (event.keyCode == 13) {
       event.preventDefault();
       document.getElementById("enlaceSiguiente").click();
      }
}
</script>

var-cont=0;
如果(cont==0){
//应在第一次按enter键时输入
var input=document.getElementById(“respuestausario”);
console.log('input:',input)
input.addEventListener(“键控”,函数(事件){
如果(event.keyCode==13){
event.preventDefault();
document.getElementById(“botonCorregir”)。单击();
}
});
cont++;
}否则{
//应第二次按enter键
如果(event.keyCode==13){
event.preventDefault();
document.getElementById(“EnlaceSiguinte”)。单击();
}
}

我想你的思路是对的,但问题是你的Javascript只执行一次。因此,else案件永远不会被触发。我重构了您的代码以使用事件侦听器中的检查:

        var cont = 0;

        var input = document.getElementById("respuestaUsuario");
        input.addEventListener("keyup", function (event) {
          if (event.keyCode == 13) {
            event.preventDefault();
            if (cont == 0) {
              cont++;

              document.getElementById("botonCorregir").click();
            } else {
              document.getElementById("enlaceSiguiente").click();
            }
          }
        });

我还创建了一个供您签出的脚本。

我想您的思路是正确的,但问题是您的Javascript只执行一次。因此,else案件永远不会被触发。我重构了您的代码以使用事件侦听器中的检查:

        var cont = 0;

        var input = document.getElementById("respuestaUsuario");
        input.addEventListener("keyup", function (event) {
          if (event.keyCode == 13) {
            event.preventDefault();
            if (cont == 0) {
              cont++;

              document.getElementById("botonCorregir").click();
            } else {
              document.getElementById("enlaceSiguiente").click();
            }
          }
        });

我还创建了一个供您签出的文件。

代码中有一些错误

您根据cont的值分配事件,因此始终具有该功能。更改cont的值后,Javascript不会重新解释代码。 我的意思是,Javascript只检查一次条件:

if(cont==0){}
这是一个有效的解决方案:

var cont=0;
var input = document.getElementById('respuestaUsuario');

input.addEventListener('keyup', function (event) {
  event.preventDefault();
  if (event.keyCode == 13) {
    if(!cont){
      alert('uno');
      document.getElementById("botonCorregir").click();
      cont++;
    }else{
      document.getElementById("enlaceSiguiente").click();
    }
  }
});

代码中有一些错误

您根据cont的值分配事件,因此始终具有该功能。更改cont的值后,Javascript不会重新解释代码。 我的意思是,Javascript只检查一次条件:

if(cont==0){}
这是一个有效的解决方案:

var cont=0;
var input = document.getElementById('respuestaUsuario');

input.addEventListener('keyup', function (event) {
  event.preventDefault();
  if (event.keyCode == 13) {
    if(!cont){
      alert('uno');
      document.getElementById("botonCorregir").click();
      cont++;
    }else{
      document.getElementById("enlaceSiguiente").click();
    }
  }
});