Web アプリで単体テストを作成していEnterます。たとえば、テキスト ファイルへのダウンロード ボタンがクリックされた後、ページからキーが押されたイベントを自動的にトリガーしたいと考えています。jQueryまたはJavascriptでこれを行うにはどうすればよいですか?
55350 次
4 に答える
7
ユーザーがボタンをクリックしたかどうかを示す変数を作成します。
var clicked = false;
ボタンにイベント リスナーを追加して、ユーザーがボタンをクリックしたときに
clicked
変数が になるようにしtrue
ます。myButton.addEventListener('click', function(){ clicked = true; });
keypress
イベント リスナーを追加します。document.addEventListener('keypress', function(e) { // `e` is the event });
そのイベントリスナー内で、ユーザーが以前にクリックしたかどうかを確認します
if(clicked) { // ... }
もしそうなら、押されたキーをチェックしてください。Enterのキーコードは13です。
var keynum = e.keyCode||e.which; if(keynum == 13) { // ... }
押されたキーがエンターだった場合は、
clicked = false;
そうしないと、ユーザーがボタンをクリックして Enter キーを押すと、ボタンを再度クリックする必要がなくなります。
その後、コードを実行します。たとえば、これは
f
2 秒後に関数を呼び出します。setTimeout(f, 2000);
ライブデモ
var clicked = false;
document.querySelector('#btn').addEventListener('click', function(){
clicked = true;
snippet.log("You clicked the button. `clicked` is now `true`");
});
document.addEventListener('keypress', function(e) {
if(clicked) {
var keynum = e.keyCode || e.which;
if(keynum == 13) {
clicked = false;
snippet.log("`clicked` is now `false`. Waiting 2 seconds...");
setTimeout(f, 2000);
}
}
});
function f() {
snippet.log("Function `f` executed successfully!");
}
#btn {
border: 3px solid red;
cursor: pointer;
}
<div id="btn">Click me, and then press enter.</div>
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 --><script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
于 2012-08-13T01:05:34.990 に答える
6
私があなたの質問を正しく理解すれば、これはあなたが探しているものです
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).keydown(function(event){
if(event.keyCode == 13){
alert("keypressed");
}
});
function clickevent()
{
var e = $.Event("keydown");
e.which = 13;
e.keyCode = 13;
$(document).trigger(e);
}
</script>
</head>
<body id="thebody">
<input type="button" onclick="clickevent()" value="click me first">
</body>
</html>
于 2012-08-13T01:31:32.003 に答える
2
Enterイベントをトリガーするキーを自動的に入力することについて話している場合はsubmit
、代わりにこれを使用できます。
$("#formID").submit();
ボタンが押された後にこのイベントをトリガーするには、次のようにします。
$("#buttonID").click(function() {
$("#formID").submit(); // submits form
});
于 2012-08-13T00:53:54.613 に答える
1
$("#txtfield").keyup(function(e) {
if(e.keyCode == 13) {
$("#submit").submit();
}
});
于 2012-08-13T01:01:57.603 に答える