dポイントプレゼントキャンペーン実施中!

フォーム内のテキストフィールドにアドレスを入力後、Enterキーを入力して
移動するにはどうすればよいのでしょうか?

以下のようなコードを作成したのですがうまくいきませんでした。

<html>
<head>
<script type="text/javascript">
function jumpURL()
{
url = document.f.t.value;
location.href = url;
}
</script>
</head>
<body>
<form name="f" onSubmit="jumpURL()">
<input type="text" name="t" id="t">
</form>
</body>
</html>

ご存知の方がおられましたらご回答をよろしくお願いします。

A 回答 (3件)

こんな流れで良いじゃないかな?(動作未確認)


window.onload = function(){
document.getElementById('t').onkeydown = function (ev){
var ev = (!ev) ? event:ev;//Firefox1.5ではevにイベントが入る
var key = ev.keyCode;//取り合えずkeyCodeを取る。
alert(key)//Enterキーを押して確認してください。
var mf = (ev.modifiers) ? ev.modifiers : ((ev.altKey) ? 1 : 0) + ((ev.ctrlKey) ? 2 : 0) + ((ev.shiftKey) ? 4 : 0);//NNがmodifiersでIE,FirefoxがctrlKey、shiftKey、altKeyだったかな?
alert(mf)//Enterキーを押して確認してください。
var k = key + '_' + mf;//ここでkeyCode_modifiersと言う形を作る。
alert(k)//Enterキーを押して確認してください。
if(k == '13_0'){//Enterキーで装飾キーが押されていない。
url = document.f.t.value;
location.href = url;
}
}
}

この回答への補足

上記の通りにやってみたところFirefox2では動作したのですが
IE6では動作しませんでした。(alertは表示されるがページ移動をしない)

補足日時:2007/05/04 19:05
    • good
    • 0

<script type="text/javascript">


window.onload = function(){
document.getElementById('t').onkeydown = function (ev){
var ev = (!ev) ? event:ev;//Firefox1.5ではevにイベントが入る
var key = ev.keyCode;//取り合えずkeyCodeを取る。
alert(key)//Enterキーを押して確認してください。
var mf = (ev.modifiers) ? ev.modifiers : ((ev.altKey) ? 1 : 0) + ((ev.ctrlKey) ? 2 : 0) + ((ev.shiftKey) ? 4 : 0);//NNがmodifiersでIE,FirefoxがctrlKey、shiftKey、altKeyだったかな?
alert(mf)//Enterキーを押して確認してください。
var k = key + '_' + mf;//ここでkeyCode_modifiersと言う形を作る。
alert(k)//Enterキーを押して確認してください。
if(k == '13_0'){//Enterキーで装飾キーが押されていない。
url = document.f.t.value;
url = (url == '') ? './':url
location.href = url;
return false;
}
}
}
</script>
    • good
    • 0
この回答へのお礼

上記の通りにやってみたところ問題を解決することができました。
ご回答いただきどうもありがとうございました。

お礼日時:2007/05/04 21:57

それで上手く行かないならonkeydownを使ったら如何でしょうか。


OSで違いがあるかもしれませんがEnterキーは
event.keyCode==13
event.altKey=flase
event.ctrlKey=false
event.shiftKey=false
または
event.keyCode=13
event.modifiers==0
こんな感じだったとおもいました。
その後条件を満たしたら
url = document.f.t.value;
location.href = url;
で上手く行かないかな?

この回答への補足

以下のように作ってみたのですがうまくいきませんでした。
具体体にはどのようにすればよいのでしょうか?
(ちなみに使用しているOSはWindows XP、ブラウザはIE6です)

<html>
<head>
<script type="text/javascript">
function jumpURL()
{
if( event.keyCode=13 && event.modifiers==0 )
{
url = document.f.t.value;
location.href = url;
}
}
</script>
</head>
<body>
<form name="f">
<input type="text" name="t" id="t" onKeyDown="jumpURL()">
</form>
</body>
</html>

補足日時:2007/05/04 09:38
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!