2011-05-17 21 views
1

にjQueryの値を渡すと、私はMVCカミソリページに埋め込まれ、次のjQueryの機能を持っている:はMVC 3かみそりビューHTMLヘルパー

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("input[name=MultiListsetting]").change(function() { 
      var valueString = ""; 
      $("input[name=MultiListsetting]:checked").each(
      function() { 
       valueString += this.id + "," 
      } 
      ); 
      var MultiValueListResult = valueString.slice(0, -1); 
      alert(MultiValueListResult); 
     }); 
    }); 
</script> 

これは、チェックボックスのシリーズのid属性に基づいて文字列を出力します。チェックボックスの値が変更されると、文字列が再構築されます。したがって、3つのチェックボックスをすべてチェックすると、関数は出力する: "checkboxID1、checkboxID2、checkboxID3"を変更するまで。これは、DBサーバーがこの一連のチェックボックスの値を格納する方法です。私が今達成する必要があるのは、この関数が出力する文字列を、同じRazorページの隠れたHTML要素に渡すことです。

@Html.Hidden("SetViewModel[" + i + "].Value", [string output here]) 

jQueryはこの移動を許可しますか?私はどうにかして "MultiValueListResult"を取って隠しコントロールに入れることはできますか?私はまだ研究中です。

答えて

1

テンプレートのメタリンクに実行時間が混在しています。 jQueryが実行されるよりずっと前にHTML隠しフィールドがページに表示されます。

@Html.HiddenFor(x => x.MyPropertyName); 

そして、あなたのコールバックで、単に更新する、それが価値だ:フォームは、あなたの選択したセットの値をポストバック取得すると

$('#myElement').change(function() 
{ 
    $('#MyPropertName').val(MultiValueListResult); 
}); 

何をする必要があるだけであなたの隠されたフィールドを作るです隠れた値の中に含まれます。

+0

これは間違いなくやったようです...私は隠しコントロールのID属性を作成し、このようにしてアクセスしました:$( "input [ID = MultiValueListReturn]")val(MultiValueListResult);コントロールは私が望むように正確に更新されているように見えます。ありがとうございました! – ewomack

関連する問題