2010-12-03 4 views
0

ユーザーがjqGridで編集をクリックすると、開いているフォームには少数のリストボックスとテキストボックスがあります。リストボックスの値に応じて、いくつかのテキストボックスを無効にするか、フォームの読み込み時にのみ読み込みを設定する必要があります。jqGrid編成を使用して編集する別のフィールドの値に基づいてフィールドを無効にする

私は、有効/無効にテキストボックスを切り替えるには、リストボックスにonChangeイベントのために働いて作品を得たが、私は、フォームのロード時にそれを行うのに苦労しています。私は、既にイベントハンドラを持っているaftershowformを使ってみましたので、別のイベント、例えばaftershowform2を作成して、このイベントとイベントハンドラを起動しました。しかし問題は、リストボックスがAjaxコール(editoptionsのdataurl)を使用して動的にロードされ、aftershowformがこれらのリストボックスにオプションが設定される前に発生することです。リストボックスがロードされた後に発生するイベントはありますか?アプリケーション全体がフレームワークに基づいており、コードを貼り付けるのは難しいです。

答えて

1

要件を実装するためのさまざまな方法があります。

最初に、私の意見では最高のものは、(例としてthisの回答を参照してください)type:'change'editoptionsdataEventsの利用となります。対応するコードdataEventsによって定義された関数に

editoptions: { dataUrl:..., 
       dataEvents: [ 
        { 
         type: 'change', 
         fn: function(e) { 
          var v=$(e.target).val(); 
          alert(v); // do something with selected item value 
         } 
        } 
       ] 
      } 

結合することができるselectサーバから含有の正常復帰後であろう。

jQuery.bindjQuery.live(コードテンプレートhereを参照)に置き換えるように、現在の実装を変更することもできます。

+0

私はchangeイベントを試しましたが、フォームがロードされるとイベントは発生しません。前にも述べたように、リストボックスのオプションを変更すると、変更イベントが発生します。 – anamar

+0

@anamar:あなたのコードで動作しない場合は、完全なコードで質問を追加する必要があります。私があなたの問題を再現できるなら、私はあなたを助けることができます。 – Oleg

関連する問題