2009-09-02 11 views
1

これで、DropDownListで選択された特定の値に基づいてテキストボックスを表示または非表示にするjqueryがあります。これは、常に非表示にするためのポップアップの最初の表示が必要な場合を除き、機能します。ドロップダウンリストではインデックスの変更が行われていないため、次のことは機能しません。私がvisible = "false"としてコード化すると、それは常に隠れたままです。どうすれば解決できますか?最初の表示のためにテキストボックスを非表示にしてjqueryの作業を続ける方法

<script language="javascript" type="text/javascript"> 

    var _CASE_RESERVE_ACTION = "317"; 
    var _LEGAL_RESERVE_ACTION = "318"; 

    function pageLoad() { 

     $(".statusActionDDLCssClass").change(function() { 
      var value = $(this).val(); 
      if (value == _CASE_RESERVE_ACTION || value == _LEGAL_RESERVE_ACTION) { 
       $(".statusActionAmountCssClass").attr("disabled", false); 
       $(".statusActionAmountCssClass").show(); 
      } 
      else { 
       $(".statusActionAmountCssClass").attr("disabled", true); 
       $(".statusActionAmountCssClass").hide(); 
      } 
     }); 
    } 

</script> 

あなたは

visible=false 

を設定した場合、.NETがそれを表示されません

答えて

4

GA、スワニー ジム、ありがとうございました。あなたは

style="display:none;" 

を行うことができますし、.NETが適切にタグをレンダリングしますが、CSSは、ユーザーからそれを非表示になります。

+0

パーフェクト!ありがとうございます – James

0

がちなみにpageLoad機能

function pageLoad(sender, args) { 

$("input.statusActionAmountCssClass").hide(); 

.... rest of code ..... 

} 

に以下を追加し、私はそれ以外の場合はjQueryのすべてを検索します、あなたの入力への参照を含むjQueryオブジェクトを取得するには)セレクタ$("input.statusActionAmountCssClass"を使用することをお勧めします

:CSSクラスに .statusActionAmountCssClass

EDITにマッチする要素10

も作ることができるもう一つの変化は、あなたがそれらを単に関数内のローカル変数に値をキャッシュ必要なとき

$.data(window, "_CASE_RESERVE_ACTION","317"); 
$.data(window, "_LEGAL_RESERVE_ACTION","318"); 

その後、2つのグローバル変数を格納するためのjQueryのdata()を使用することです

function someFunctionThatNeedsGlobalVariableValues() { 

    var caseReserveAction = $.data(window, "_CASE_RESERVE_ACTION"); 
    var legalReserveAction = $.data(window, "_LEGAL_RESERVE_ACTION"); 
} 

このように、グローバル名前空間は汚染されていません。 data()コマンドの詳細については、this answerを参照してください。

+0

このようにもありがとうございます。 「入力」制限に感謝します! ジム – James

関連する問題