web-dev-qa-db-ja.com

jsコードからmvcかみそりの隠しフィールドに値を割り当てる

私がかみそりビューの内側にすでに定義されている隠しフィールドを持っている場合

@Html.HiddenFor(m => m.MyHiddenId)

インラインjsコードからこれをどのように入力できますか

var someNr = 100;

このsomeNr値をm.MyHiddenIdプロパティに割り当てる方法は?

11
user1765862

明示的なid属性を@Html.HiddenForに追加します

@Html.HiddenFor(m => m.MyHiddenId, new { id = "hat" }) 

次にjQueryで:

var someNr = 100;
$('#hat').val(somNr); 

JQueryをお持ちでない方

document.getElementById("hat").value = somNr;

以下の回答によると、明示的なIDがない場合、HiddenForは属性IDをMyHiddenIdに設定します。したがって、これも機能します:

var someNr = 100;
$('#MyHiddenId').val(someNr);

またはjQueryなし:

document.getElementById("MyHiddenId").value = somNr;
22
Perfect28

MVCはそのフィールドに 'MyHiddenId'というIDを与えます

したがって、Jqueryの場合は、次のように設定できます。

$("#MyHiddenId").val(someNr);
2
user1641172

最初にassign IDあなたがコントロールするために、あなたはcontrol ID at compile time

@ Html.HiddenFor(m => m.MyHiddenId、new {id = "MyHiddenId"})

Jquery Code:-

var someNr = 100;

$( '#MyHiddenId).val(somNr);

JavaScript Code:-

var someNr = 100;

document.getElementById( 'MyHiddenId')。value = somNr;

2
Chetan Sharma

以下を使用できます。

_$(function(){
    var someNr = 100;
    $('#MyHiddenId').val(someNr);
});
_

注:

  • 上記のようにドキュメントで割り当てを実行することをお勧めします。このように、上記のコードをどこに配置するかは重要ではなく、jqueryを参照した後で十分です。一方、$('#MyHiddenId').val(someNr);を直接使用する場合は、htmlタグの作成後のどこかにあるはずです。それ以外の場合は、非表示にできません。
    また、値が他の値に依存している場合、または値がajaxリクエストに依存している場合は、readyに設定することをお勧めします。
  • ヘルパーを使用しているため、非表示にはid属性= MyHiddenIdがあり、手動で設定する必要はありません。
1
Reza Aghaei