2009-06-11 10 views
0

私はasp.net formviewコントロールを持っています。ユーザーが変更を加えてjqueryを使ってこれを試してみるまで、Update/Cancelボタンを無効にします。次のコードはFireFoxで動作し、フォームが挿入モードで開かれたときにIEで動作します。しかし、フォームが編集モード(IE)で開かれ、ページが開いたときにポピュレートされると、ボタンは1秒間に無効になりますが、再び有効になります。JQuery Change()関数IEの問題

これは現在使用しているものです。

// Handle the document.ready event: 
    $(document).ready(function() { 

     // Disable the save button 
     $("input.button") 
      .attr("disabled", "disabled") 
      .removeClass("button") 
      .addClass("button-disabled"); 

     // Hook up event handler to enable save button when a change is made 
     $("input").change(function() { 
      $("input.button-disabled") 
       .removeAttr("disabled") 
       .removeClass("button-disabled") 
       .addClass("button"); 
     }); 
     // Hook up the cancel confirmation dialog 
     $(".cancelEdit").click(function() { 
      showCancelConfirmation($(this)); 
      return false; 
     }); 
    }) 

私は、ユーザーがテキストを入力するまで、ボタンが無効になっていると、一時的に問題を解決し

$("input").bind("keypress", function() { 
      $("input.button-disabled") 
       .removeAttr("disabled") 
       .removeClass("button-disabled") 
       .addClass("button"); 
     }); 

に有効イベントハンドラのコードを変更しました。ただし、このメソッドで問題になっているのは、ユーザーがテキスト(IEのみ)をもう一度削除し、AJAX Toolkitカレンダーを使用していてボタンが有効になっていないということです。

フィールドでクリックするとすぐにボタンを有効にするために関数内の 'クリック'キーワードを使用できますが、これはajaxカレンダー入力の問題に役立ちません。

どのように私はこの問題を解決することができますか?

答えて

1

[OK]を事前に

おかげで、私は、と引数をkeydownイベントを使用して変更することにより、入力文字列の入力ボックス用のCssClassを取り付けることによって、これをソート - 削除を押すとアクティブに変更された場合のKeyDownは、ボタンを作動させますボタンが変更された場合 - ajaxツールキットのカレンダーを介して変更が加えられたかどうかを含む。

$("input.input-box-webform").bind("keydown change", function() { 
      $("input.button-disabled") 
       .removeAttr("disabled") 
       .removeClass("button-disabled") 
       .addClass("button"); 
     });