私は JavaScript の初心者ですが、このフォーラムの Q&A を読んで多くのことを学びました。彼らが言うように、コーディングを学ぶ最良の方法は、他の人がどのようにコーディングしているかを見ることです!
javascript/html ベースのフォームを使用してワークフローを管理しようとしています。少し背景を説明すると、私は病理学者で、さまざまな患者サンプルのテキスト ベースのレポートを作成しています。出力の多くは、事前に作成された「定型コメント」の使用に非常に適しています。このようなコメントをさまざまなチェックボックスの値にリンクして、適切なボックスを簡単にチェックし、レポートをテキストエリア内に作成できるようにしたいと考えています。
たとえば、4 つの異なる組織部位があるとします。
[] サイト 1 [] サイト 2 [] サイト 3 [] サイト 4
それぞれ4つの異なる診断から1つを選択できます
[] 診断1 [] 診断2 [] 診断3 [] 診断4
サイトと診断を選択し、関連する値をテキストエリアに表示して、次の形式で出力できるようにしたいと考えています。
サイト1、生検:
- 診断1サイト2、生検:
- 診断1サイト3、生検:
- 診断3サイト4、生検:
- 診断2
ここにフォームの始まりのいくつかがあります:
<body>
Duodenum sites <br/>
<form name=duodenum>
<input type="checkbox" name="duoDx1" id="duoDx1" /> DUO, NSA <br />
<input type="checkbox" name="duoDx2" id="duoDx2" /> DUO, _ PART <br />
<input type="checkbox" name="duoDx3" id="duoDx3" /> DUO, BULB <br />
<input type="checkbox" name="duoDx4" id="duoDx4" /> DUO, ULCER <br />
</form>
<p> </p>
Duodenum diagnoses <br/>
<form name=duodiags>
<input type="checkbox" name="duoDiag1" id="duoDiag1" /> NSA <br />
<input type="checkbox" name="duoDiag2" id="duoDiag2" /> FOCAL ACTIVE <br />
<input type="checkbox" name="duoDiag3" id="duoDiag3" /> C A <br />
<input type="checkbox" name="duoDiag4" id="duoDiag4" /> CELIAC <br />
</form>
<p> </p>
<p> </p>
<textarea id="outPut" placeholder="Diagnoses" cols=80 rows=20></textarea>
</body>
私のJavaScript:
var duoDxs = {
duoDx1: 'DUODENUM, BIOPSY: \n \n',
duoDx2: 'DUODENUM, ___ PART, BIOPSY: \n \n',
duoDx3: 'DUODENUM, BULB, BIOPSY: \n \n',
duoDx4: 'DUODENUM, "ULCER", BIOPSY: \n \n'
}
var duoDiags = {
duoDiag1: ' - NO SIGNIFICANT ABNORMALITIES \n',
duoDiag2: ' - FOCAL ACUTE INFLAMMATION\n',
duoDiag3: ' - CHRONIC AND ACTIVE DUODENITIS\n',
duoDiag4: ' - VILLOUS BLUNTING AND INCREASED INTRAEPITHELIAL LYMPHOCYTES (SEE
COMMENT)\n'
}
var mytextbox = document.getElementById('outPut');
var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].type === "checkbox" && inputs[i].name.indexOf('duoDx') > -1) {
inputs[i].onchange = function() {
if (this.checked) {
mytextbox.value = mytextbox.value + duoDxs[this.name] + duoDiags[this.name];
} else {
mytextbox.value = mytextbox.value.replace(duoDxs[this.name], "");
}
}
}
}
しかし、チェックボックスの値の2つの部分を取得して、テキストエリアに正しい方法で入力できないようです。サイトと診断の両方をループするようにテキストエリアにデータを入力する関数を作成する方法がわかりませんか? どんな助け/教育も大歓迎です!
ありがとう。CK