2016-11-04 3 views
-1

に静的javascript関数を変換し、私はこの小さなスクリプトが含まれているフロントエンドの設計者ビューを与えられましたモデルから得られるリストを含むオプション。このようなもの...は、AC#MVCプロジェクトでダイナミック

<script> 
    $('#PhaseDD').change(function() { 
     var chosenValue = $(this).val(); 
     $('.ProcessDD').hide(); 
     if (chosenValue == "") 
      $('#DefaultProcess').show(); 

     // loop over a list from the model here 

     if (chosenValue == " loop-item-name ") 
      $('# loop-item-name + Process').show(); 

     // end loop 

    }); 
</script> 

これは可能ですか?もしそうなら、どうですか?そして私はこれについて正しい方向に進むつもりですか?私はかみそりの構文を使うことができると思っていましたが、それはうまくいきません。

+1

これについてはどうでしょうか?$( '#' + selectedValue + 'Process')。show() '?あなたはこれのためのリストを必要としません。 –

+0

'$("# "+(selectedValue ||"デフォルト ")+"プロセス ")。show();' – Pointy

+0

なぜあなたは他に使用していますか?変数に直接プロセスを追加する –

答えて

0

私は配列を作成し、その中に値が存在するかどうかを確認し、それが表示されるかどうかを確認します。このようなもの:

<script> 
    $('#PhaseDD').change(function() { 
     var chosenValue = $(this).val(); 
     var processes = ['Planning', 'Procurement']; 
     $('.ProcessDD').hide(); 
     if (chosenValue == "") 
      $('#DefaultProcess').show(); 

     if (processes.indexOf(chosenValue) > -1) 
      $('#' + chosenValue + 'Process').show(); 

    }); 
</script> 
+0

ok ok ...私はあなたが思っていることを見ており、これははるかに良い方法です。あなたが持っている構文は機能していませんが、そこに私を連れていくだけで十分でしょう。 –

+0

でも、私はPlanning、Procurmentなどをハードコードすることはできません。動的である必要があります。 –

0

私はこれを考えすぎました。

$('#PhaseDD').change(function() { 
     var chosenValue = $(this).val(); 
     $('.ProcessDD').hide(); 
     if (chosenValue == "") 
     { 
      $('#DefaultProcess').show(); 
     } 
     else 
     { 
      $('#' + chosenValue + 'Process').show(); 
     } 
    }); 
0

C変数とJS変数を比較することはできません。しかし、あなたはC#変数からJS変数を作成するためにかみそりを使用することができます。ここ

は、C#アレイの値とJSアレイを充填する方法である:

@{ 
    // fetch this from ViewModel if it needs to be dynamic 
    var cSharpNames = new [] { "Planning", "Procurement"}; 
} 

<script> 
    var jsNames = []; // this is a JS array 

    @foreach(var name in cSharpNames) { 
     <text>jsNames.push(@name);</text> 
    } 

</script> 

そしてジェレミーによって示されているようにjsNames配列に検索するindexOf()方法を使用します。

関連する問題