ビューにHTMLフォームがあり、サーバーから取得したjson変数でいくつかの入力フィールドに入力する必要があります。入力フィールドごとにJavaScriptコードを記述したくありません。代わりに、入力タグのvalue
属性のjson変数にアクセスしたいと思います。
onload
タグのinput
イベントをテストしましたが、効果はありません。
<input type="text" class="form-control" onload="this.value = 'value';" name="company[name]" />
これは純粋な/バニラのJavascriptソリューションです
JSONデータと同じ<input>
要素の名前を保持します。アイデアは、JSONデータのキーを使用して<input>
にアクセスすることです。
これがworking code snippet:です。
const values = {
a: 5,
b: 15
}
const keys = Object.keys(values)
const length = keys.length
for(let i = 0; i < length; i++){
const key = keys[i]
document.getElementsByName(key)[0].value = values[key]
}
<input type="text" class="form-control" name="a" />
<input type="text" class="form-control" name="b" />
onload
イベントは_<body>
_タグと他のいくつかのタグで動作します。またはwindow.onload = function(){}
を使用することもできます。以下のサンプルコードを参照してください
[〜#〜] html [〜#〜]
_ <input type="text" class="form-control" name="company[name]" id="company_name"/>
_
JSコード
_window.onload = function(){
document.getElementById("company_name").value = "value";
}
_
PS:id
は一意のセレクターになるため、入力要素にid属性を追加します。
_window.onload
_イベント匿名関数で右セレクターを使用してすべての要素にアクセスできます
[〜#〜]更新[〜#〜]
@ AlexanderO'Maraによって提案されました
「onload」は、次のHTMLタグでサポートされています。
_<body>, <frame>, <frameset>, <iframe>, <img>, <link>, <script>
_
そして、以下のJavascriptオブジェクト:
_image, layer, window
_
$('document').ready(function () {
$('input').val('value')
})
$('document').ready(function() {
$('input').val('value')
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" class="form-control" name="company[name]" />