IEだけでなく、Firefox、Chrome、Safariなどでも機能するデフォルトのEnterボタンを設定するための提案はありますか?デフォルトのボタンが設定されたパネルがいくつかありますが、ブラウザ以外でEnterキーを押すと、デフォルトでページの最初のリンクになります。
助言がありますか?
IEだけでなく、Firefox、Chrome、Safariなどでも機能するデフォルトのEnterボタンを設定するための提案はありますか?デフォルトのボタンが設定されたパネルがいくつかありますが、ブラウザ以外でEnterキーを押すと、デフォルトでページの最初のリンクになります。
助言がありますか?
押されたボタンをチェックするJavaScriptを少し書くことができます。それがEnterキーの場合は、目的のアクションを実行します。
次のような入力を確認してください。
function checkEnter()
{
if(event)
{
if(evnet.keyCode == 13) //ur code
}
else if(evt)
{
if(evt.keyCode == 13) //ur code
}
}
ここでは 2 つの例を示しました。最初の例では jQuery を使用し、2 番目の例では古い学校の JavaScript を使用しています。
jQuery
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script language="javascript" type="text/javascript">
$("document").ready(function(){
$(".searchBox").keypress(function(e){
if (e.keyCode == 13)
//add code here
});
});
</script>
<div class="searchBox">
<input type="text" name="searchText"/>
<input type="submit" value="search now" />
</div>
純粋な JavaScript
フォームを囲む div で「onkeypress」アクションを使用する前に、これを行いました。これは、IE7、Firefox3、および Chrome でテストされています。
例を次に示します。
<div id="searchBox" onkeypress="return clickButton(event,'btnSearch')">
<input name="searchText" type="text" id="searchText" />
<input type="button" name="btnSearch" value="Search" id="btnSearch" onClick="SubmitAction()" />
</div>
<script type="text/javascript" language="javascript">
function SubmitAction()
{
alert('button clicked');
}
function clickButton(e, btId){
var bt = document.getElementById(btId);
if (typeof bt == 'object'){
if(navigator.appName.indexOf("Netscape")>(-1)){
if (e.keyCode == 13){
bt.click();
return false;
}
}
if (navigator.appName.indexOf("Microsoft Internet Explorer")>(-1)){
if (event.keyCode == 13){
bt.click();
event.cancelBubble = true;
return false;
}
}
}
}
</script>
すべてのブラウザーで完全に互換性を持たせるために、これを編集する必要があるかもしれませんが、そこからアイデアを得る必要があります。基本的に、この div がフォーカスされている間にキーを押すと、clickButton() 関数が呼び出されます。他の回答で述べたように、13 の e.keyCode は Enter キープレスを表します。