2016-02-25 64 views
1

我需要检测第一个按下后的第二个输入。 案例:我有一个输入表单,第一个输入是选择一个城市,第二个输入是触发提交。有没有办法做到这一点?如何检测第二个输入是在触发键盘上触发的?

$("#this_is_the_input").keyup(function(e) { 
    if (e.keyCode == 13) { 
     This is the first enter to select the city. 
     How do I detect the second enter to submit? 
    } 
}); 
+0

你能澄清第二进入?如果他们击中进入,离开球场,然后返回并击中输入,这是否也被认为是第二次输入,或者这将是一个新的首次输入? – Taplar

+0

您可以看到城市字段是否有价值。如果它确实提交了表格。 'if(e.keyCode == 13 &&!{{input class name}}。val())'和else if(e.keyCode == 13 && {{input class name}}。val())' – spasticninja

+0

您选择的城市输入JS代码应该防止事件冒泡提交触发器。你在使用什么城市自动完成/键入? – CrnaStena

回答

0

这样的事情应该适合你。 clicks变量跟踪发生了多少keyup事件。希望你有正确的keyCode。如果它的第二个,那么它调用第二个警报。告诉我,如果这不是你需要的。

var clicks=0; 
$("#this_is_the_input").keyup(function(e) { 
     console.log("clicks: "+clicks); 
    if(e.keyCode == 13) 
      clicks++; 
    if (e.keyCode == 13 && clicks == 1) { 
     console.log("first click"); 

    } 
    else if(e.keyCode == 13 && clicks == 2){ 
    console.log("second click"); 
    } 
}); 
+0

该代码将永远不会显示“第二次点击”,因为你是'++点击'总是做奇数。在if语句之前移动++点击,参见[jsFiddle](https://jsfiddle.net/o9y9v2dh/)。 – CrnaStena

+0

就我个人而言,我可能会尝试使用元素上的数据元素,所以它更加独立。 – Taplar

+0

谢谢@CrnaStena – pritesh

0

试试这个:

count = 0 
$("#this_is_the_input").keyup(function(e) { 
    if (e.keyCode == 13) { 
     if(count == 0) 
     { 
      //This is the first enter to select the city. 
     }else 
     { 
      //This is the second enter to submit. 
     } 
    count++; 
    } 
});