0

タイトルがあまり説明されていない場合は申し訳ありません。

テキストボックス、ボタン、エラーメッセージのあるページがあります。

テキスト ボックスに入力されたテキストが null または空でないかどうか、十分な長さがあるかどうか、奇妙な文字が含まれていないかどうか、最後に重要なこととして、ユーザー名がデータベースにまだ存在しないかどうかを検証する必要があります。その部分は完了し、機能しています。

私の質問は、ユーザー名がタイプである asp:textbox を検証する Jscript 関数を呼び出す最良の方法は何ですか。

現在、私は3つの異なる方法を見ています。

  1. テキストボックスでフォーカスが失われたときに .blur を使用して呼び出す

  2. キーが押されるたびに.keyupまたは.keydownを使用して呼び出す

  3. タイマーを使用して X 秒ごとに検証する

.blur の問題は、ページ上でフォーカスする価値のある唯一のものへのフォーカスを失うことなく検証しないことです。.keyup と .keydown の問題は、DB を何度も呼び出すことです。そして、タイマーの問題は、タイマーに問題があるかどうか正確にはわかりません。そのため、私は尋ねています。

検証サーバー側もあるため、通過できません。

詳細については、現在持っている .blur を含む jscript を参照してください。

<script type="text/javascript">
var Name;
var NameValid = false;

$(document).ready(function () {
    Name = $("#txtBox");
    validateName();
    Name.blur(function () {
        validateName();
    });

});

function validateName() {
    NameValid = false;
    PageMethods.NameValidMethod(Name.val(), successName, error);
};

それを行う最良の方法は何ですか?

編集:さらに情報を追加するには。現在、私のページはテキストボックスとボタンのみです。将来、ウェブサイトを更新するときに、ページにテキスト ボックス以上のものを用意する予定です。

4

3 に答える 3

2

短いフォームの場合、最適なユーザー エクスペリエンスは、フォームの送信時に検証を実行することです。ボタンを使用したり、ユーザーが「Enter」キーを押すことに頼ったりすることに完全に反対していますか?

次に、フォームの送信時に Javascript を使用して次の検証が行われます。

次に、これらすべてに合格した場合は、サーバーへの送信を続行して、ユーザー名の一意性を確認します。

于 2013-05-13T18:24:53.490 に答える
1

.submit()関数を見たことがありますか?フォームを送信する直前に呼び出され、通常はフォームを検証する場合に使用されます。

次のように呼び出すことができます。

$('form').on('submit',function(data){
    //Validate the users info.
    //if not valid call e.preventDefault();
});

API: http://api.jquery.com/submit/

各フィールドの検証 (IMO を楽しむ) の道を進みたい場合はchange()、何かが変更されたときに呼び出される jquery 関数を使用できます。

$('input..').on('change',function(){
    //That input has changed, validate it now.
});

API: http://api.jquery.com/change/

于 2013-05-13T18:22:11.340 に答える
0

私の提案では、クライアント側の検証を処理する正しい方法を選択してください。時間に基づく検証は良い考えとは思えず、あまり実用的でもありません。

于 2013-05-13T18:28:04.937 に答える