このようなものには、図書館がいいかもしれません。個人的にはKnockoutをお勧めしますが、好みは人それぞれです。これが私が行う方法です(必ずしもあなたにとって最良の方法ではありません)。
HTML はほとんど同じで、テンプレートが追加されているだけです。主な違いは、data-bind
表示するデータを要素に伝える属性です。キーは、 (の反対)ではなく、のvalueUpdate
後に変数を更新することを示しています。 keydown
blur
focus
<div>
<label for="EmployeeName">Full name:</label>
<input id="EmployeeName" type="text" maxlength="30" size="20"
data-bind="value: EmployeeName, valueUpdate: 'afterkeydown'" />
<label for="XYZ">A Label:</label>
<input id="XYZ" type="text" maxlength="30" size="20"
data-bind="value: XYZ, valueUpdate: 'afterkeydown'" />
</div>
<textarea disabled rows=20 data-bind="value: Email"></textarea>
<script type="text/html" id="signatureTemplate">
<h2>EmployeeName</h2>
<h2>XYZ</h2>
<h3>Company</h3>
<h3>My Position</h3>
</script>
これらのdata-bind
値は JavaScript と一致し、ユーザーが文字を入力するたびに更新されます。Web サイトでKnockout を学習するか、必要に応じてこのコードを変更してください。
var SignatureGenerator = function(){
var self = this;
self.EmployeeName = ko.observable('');
self.XYZ = ko.observable('');
self.Email = ko.computed(function(){
return document.getElementById("signatureTemplate").innerHTML
.replace("EmployeeName", self.EmployeeName());
.replace("XYZ", self.XYZ());
});
}
ko.applyBindings(window.app = new SignatureGenerator());