0

入力タイプ = "テキスト" コントロールで onkeypress を使用して、入力ボタンが押された場合に JavaScript を起動しようとしています。ほとんどのページで機能しますが、カスタム .NET コントロールを含むページもいくつかあります。

問題は、onkeypress の前に .NET サブミットが起動することです。onkeypress を最初に起動する方法についての洞察を持っている人はいますか?

それが役立つ場合は、ここに私のjavascriptがあります:

 function SearchSiteSubmit(myfield, e)
{
    var keycode;
    if (window.event)
        keycode = window.event.keyCode;
    else if (e)
        keycode = e.which;
    else 
        return true;
    if (keycode == 13)
    {
        SearchSite();
        return false;
    }
    else 
        return true;
}
4

3 に答える 3

0

JavascriptOnKeyPressは常に最初に起動します。それは、ページがポストバックされる前に操作が完了したかどうかに関係なく発生します。

何がどこで起こっているのかを考え直してください。サーバー側で何が起こっているのでしょうか。

于 2008-12-09T16:31:01.327 に答える
0

どのようにjavascriptを割り当てていますか?

次のようになります。

<input id="TextID" type="text" onkeypress="return SearchSiteSubmit('TextID', event)" />
于 2008-12-09T17:14:33.297 に答える
0

これはあまり明確な質問ではないので、試してみます -

ここで「Enter」のキープレスを探しているようです。問題は、通常、「Enter」キーがブラウザによって自動的にフォームの送信ボタンにバインドされていることです。つまり、ユーザーが Enter キーを押すと、ここにある JavaScript を実行するのではなく、フォームを送信します。あなたがすべきことは、入力ボタンが押されたときに「MyField」にフォーカスがあるかどうかをチェックするグローバルイベントハンドラーを作成し、フォーカスがある場合は、フォームを送信するのではなく、JavaScript を起動することです。私はあなたの質問を理解したと思います!

于 2008-12-09T16:39:09.407 に答える