2011-07-21 27 views
0

私は簡単な検索機能を持っています。私はEnterキーを押しても機能しますが、フォームも同時にポストされます。トリガ機能on Enterキー押し

<script> 
function search() 
{ 
... 
} 

$(document).ready(function() { 
    $("#text").keypress(function (e) { 
if (e.which==13) 
    search(); 
}); 
}); 

<body> 
<form id="searchForm" name="searchForm"> 
<input size="40" id="text" type="text" name="text" class="input" /> 
</form> 
</body> 
+0

?それを行うより良い方法があるかもしれません。 'searchForm'という形式が出されたときに' search() '関数を実行しますか? – Shef

+0

#textで誰かが「enter」キーを押したときに検索を実行したい – Sourav

+0

私はこの問題を解決するための適切な方法で答えを出しました。 – Shef

答えて

1

バインドイベントを提出し、デフォルトを防止する機能:

$('form').submit(function(ev){ 
    ev.preventDefault(); 
    /* your code here */ 
}); 
0

あなたは処理が継続停止しますあなたの関数からfalseを返す試すことができます。自然の送信アクションをキャンセルするためにはfalseを返すだけhttp://api.jquery.com/submit/

使用preventDefaultか:

+0

私は 'return'を試してもまだそれを止めません。 – Sourav

+0

以下のadamsコメントは、次のステップです - preventDefault。 –

0

それはあなたがsubmitイベントを使用する必要があり、フォームの働き方です。

1
<script> 
function search() 
{ 
... 
} 

$(document).ready(function() { 
    $("#text").keypress(function (e) { 
if (e.which==13) 

    search(); 
    return false; 
}); 
}); 
</script> 

使用return falseは、それが入力キープレスイベントをリッスンする必要はありませんデフォルトのアクション

1

を防ぐことができます。 submitイベントを聞く必要があります。このイベントは、キーが押されたときにも発生します。

ここでそれを行うための適切な方法は次のとおりです。

$(document).ready(function() { 
    $("#searchForm").submit(function (e) { 
     e.preventDefault(); 
     search(); 
    }); 
}); 
正確にあなたがここで達成しようとしている何
関連する問題