奇妙なエラーが発生します。TextArea をインスタンス化しようとすると、 Uncaught TypeError: number is not a function が発生します。ただし、代わりに TextBox に変更すると、コードは正常に実行されます。コンストラクターに無効なものを渡しているとは思いません。コード内に TextArea が上書きされている場所はありません。else if ブロックでインスタンス化するまで、自分のコードでは使用しません。何か案は?
array.forEach(listOfFields, function(item) {
if(item === "Recent Rain") {
tr = domConstruct.create("tr", {}, "displayDataForm"),
td = domConstruct.create("td", {}, tr),
td1 = domConstruct.create("td", {}, tr),
l = domConstruct.create("label", {
innerHTML: 'Rain in Last 24 Hours?: ',
'class': 'dataFieldLabel',
'for': item
}, td, 'first'),
r = new DropDownSelect({
'class': 'dataField',
name: item,
title: item,
options: [
{ label: "Yes", value: "Yes" },
{ label: "No", value: "No", selected: true },
],
'data-fieldType': 'DropDownSelect'
}).placeAt(td1, 'last');
}
else if(item === 'Water Color or Odor' || item === 'Aquatic Life Present' || item === 'Site Change') {
tr = domConstruct.create("tr", {}, "displayDataForm"),
td = domConstruct.create("td", {}, tr),
td1 = domConstruct.create("td", {}, tr),
l = domConstruct.create("label", {
innerHTML: item + ': ',
'class': 'dataFieldLabel',
'for': item
}, td, 'first'),
r = new TextArea({
'class': 'dataField',
name: item,
title: item,
'data-fieldType': 'TextArea'
}).placeAt(td1, 'last');
}
else {
tr = domConstruct.create("tr", {}, "displayDataForm"),
td = domConstruct.create("td", {}, tr),
td1 = domConstruct.create("td", {}, tr),
l = domConstruct.create("label", {
innerHTML: item + ': ',
'class': 'dataFieldLabel',
'for': item
}, td, 'first'),
r = new TextBox({
'class': 'dataField',
name: item,
title: item,
'data-fieldType': 'TextBox'
}).placeAt(td1, 'last');
}
});
アップデート
依存関係の完全なリストは次のとおりです。
require(["dojo/dom", "dojo/ready", "dojo/request", "dojo/dom-construct", "dojo/dom-attr", "dojo/_base/declare", "dojo/_base/array", "dijit/Dialog", "dijit/form/DateTextBox", "dijit/form/Form", "dijit/form/Button", "dijit/form/CheckBox", "dijit/form/TextBox", "dijit/form/TextArea", "dojox/form/DropDownSelect", "dojo/json", "dijit/registry", "dojo/query"],
function(dom, ready, request, domConstruct, domAttr, declare, array, Dialog, DateTextBox, Form, Button, Checkbox, TextBox, TextArea, DropDownSelect, JSON, registry, query)
dijit/form/TextArea を使用しています