2012-04-11 10 views
1

より良いユーザーエクスペリエンスを作成するために、私のサイト用のJavaScriptを書き始めていますが、ちょうど何が起こっているのかちょっと混乱しています。間違っているか不足しています。私は2つのjavascript関数を使っています。最初に使用した後、ゆっくりと使うと(たぶん次の項目をスキップして、2つのキーを押しすぎると何も選択しない)私は何らかの$(document).ready(function(){})が欠けていると感じます。各プロセスが移動する前に完了していることを確認する実装。ユーザーが2つの数字を入力する2つのテキストボックスがあり、次のタブ要素(次のテキストボックス)に移動します。テキストボックスは、それが影響を与える場合は、asp.netの更新パネルにもあります。Javascript/Jqueryのシンプルなユーザーエクスペリエンス機能

function selectall(item) { 
      $(item).focus().select(); 
    }; 

    function selectNext(textBox) { 
     if ($(textBox).val().length == 2) { 
      $(textBox).next().focus().select(); 
     } 
    }; 

     <asp:TextBox ID="Text1" runat="server" Width="30px" AutoPostBack="True" onkeyup="selectNext(this);" onclick="selectall(this);" 
    Height="20px"></asp:TextBox>: 
       <asp:TextBox ID="Text2" runat="server" Width="30px" AutoPostBack="True" onkeyup="selectNext(this);" onclick="selectall(this);" 
    Height="20px"></asp:TextBox> 
       <asp:DropDownList ID="Text2" runat="server" 

答えて

0

なぜ、UpdatePanelにテキストボックスを含める必要がありますか?

テキストボックスに設定したAutoPostbackは、TextBoxコントロールがフォーカスを失うたびにページポストバックが発生するため、jQueryに問題が発生する可能性があります。

私はUpdatePanelからテキストボックスを取り出し、AutoPostbackを削除し、JavaScriptをdocument.readyに配置します。

編集

コードスニペット:それはいくつかを埋めるために、サーバーにポストバックする必要があるいくつかのユーザー入力のためのjQueryのダイアログポップアップの一部であるため

$(document).ready(function() { 
    $("#fname").keyup(function() { 
     selectNext($(this)); 
    }); 

    $("#fname").focus(function() { 
     $(this).select(); 
    }); 

    $("#lname").keyup(function() { 
     selectNext($(this)); 
    }); 

    $("#lname").click(function() { 
     $(this).select(); 
    }); 
}); 

function selectNext(textBox) { 
    if (textBox.val().length == 2) { 
     setTimeout(function() { 
      textBox.next().focus().select(); 
     }, 5); 
    } 
} 
+0

これらのテキストボックスは、更新パネル内にありますユーザーのために読み込まれる前に、c#の関数がデータを処理します。これらのテキストボックスは2つの数字で始まります。 私は持っていたオートポストバックを指摘してくれてありがとうございます。これは初めての使用ではない最初の使用問題を解決しましたが、まだキーを上げても次のテキストボックスをスキップします。 – Marrs

+0

私はまた、このダイアログボックスのポップアップダイアログに応答してsubmitまたはcancelをクリックするまで、.blockui関数を使ってページをロックすることを言及する必要があります。私が$(document).ready(function(){})を置くと、私の機能の周りには、Googleコンソールは、これらのスクリプト機能を見つけることができないと言います。 – Marrs

+0

私は、キーを完全に解放する前に次のボックスに切り替える可能性があるので、このスキップする問題はonkeyupイベントと関係があると思いますか?次のテキストボックスのキーアップイベントを引き起こしますか?何とか両方のテキストボックスの同じキーアップイベントですか?私の最高の推測です – Marrs

関連する問題