0

以下のようなテキストボックス機能があります

<input type="text" onkeypress="return onEnter(event,this);"
    onBlur="return chkForDBCS(this);"/>

関数chkForDBCS()は、DBCS(主に日本語文字用)がテキストに入力されているかどうかを確認し、アラートメッセージをスローして、テキストボックスをクリアします。

関数onEnter()はフォームを送信します。

onEnter()関数の開始時にテストアラートメッセージが表示されると、onBlurのchkForDBCS()が最初に実行され、完了するまでonEnterメソッドで開始するのを待ちます。

しかし、onEnterでテストアラートメッセージを削除すると、フォームが送信され(onEnter)、同時にアラートメッセージ(chkforDBCSから)が表示されます。

しかし、私の要件は、最初にchkForDBCSを使用してDBCS文字が入力されているかどうかを確認することであり、すべてが正常になったら、フォームを送信する必要があります。

上記の問題を解決するために使用できる同期のようなものはありますか?

誰かが上記の問題について私を助けてくれますか?前もって感謝します。

4

1 に答える 1

0

onbeforesubmitイベントを使用します。

<form onbeforesubmit="onBeforeSubmitHandler()" ...>

return falseイベントハンドラーから、フォームが送信されないようにすることができます。

さらに、なぜonkeypressフォームを送信するために使用しているのですか? 通常の送信ボタンはありませんか?

于 2009-10-14T13:32:15.403 に答える