よ!
私のサイトには次の機能が実装されています。これにより、ユーザーは上下に押して、ページのさまざまなセクションをスムーズにスクロールできます。
// CONTROL TOP NAVBAR WITH UP/DOWN ON KEYBOARD
$(document).keydown(function(e) {
var p = $("li.active");
if (e.keyCode === 38) {
e.preventDefault();
p.prev().find("a").click();
} else if (e.keyCode === 40) {
e.preventDefault();
p.next().find('a').click();
}
});
これは正常に機能します。ただし、ページにはお問い合わせフォームもあります。ユーザーがお問い合わせフォームに入力するときに、テキストボックス内のキーボードを使用して上下に移動し、適切にナビゲートできるようにしたいと思います。ただし、現在もナビゲーションバーを制御しています。
お問い合わせフォームのIDは#contactformです。コードはここにあります:
<form name="contactform" id="contactform" method="post" action="/contact/" _lpchecked="1">
<ul class="form-block">
<!-- HONEYPOT -->
<li class="on-no-robots" style="height:0px; text-indent:-9999px; font-size:0px; overflow:hidden;">
<label>Humans Don't Submit This!! If you can see this, you don't have CSS, and you scare me. This is just here to filter out automated comments!</label>
<input name="robotest" id="robotest" type="text" />
</li>
<!-- HONEYPOT -->
<li class="third">
<label for="name">Name</label>
<input type="text" name="name" id="name" value="" class="required" />
</li>
<li class="third">
<label for="email">Email Address</label>
<input type="email" name="email" id="email" value="" class="required email" />
</li>
<li class="third">
<label for="phone">Phone Number</label>
<input type="text" name="phone" id="phone" value="" />
</li>
</ul>
<h3>How can we help you?</h3>
<ul class="form-block">
<li class="full">
<textarea name="comments" id="comments" class="required"></textarea>
</li>
<li>
<input id="submitButton" type="submit" value="Talk to us" />
</li>
</ul>
</form>
「#contactform#name、#contactform#email、#contactform#commentsにフォーカスがある場合は、この機能を無効にする」という条件付きステートメントを作成することはできますか?
私はjqueryがかなり苦手ですが、これが私の試みでした:
$(document).keydown(function(e) {
if ($("#contactform input", "#contactform textarea").is(":focus")){
return;
}
else{
var p = $("li.active");
if (e.keyCode === 38) {
e.preventDefault();
p.prev().find("a").click();
} else if (e.keyCode === 40) {
e.preventDefault();
p.next().find('a').click();
}
}
});
現在、上/下矢印関数は正常に機能しますが、条件付きステートメントは間違っています。私はここで何を逃しましたか?