おそらく非常に単純な質問ですが、テキストエリアから javascript/typescript 関数にデータを送信する方法が見つからないようです。
HTML
<div data-options="dxContent : { targetPlaceholder: 'content' } " >
<p> use this page to log errors</p>
<p id="prevErrors" style="font-style:italic">PreviousErrors</p>
<br />
<div id="curError" data-bind="dxTextArea: { }"></div>
<br />
<div data-bind="dxButton: { text: 'Save and return to main menu' }" onclick=" saveMyData(document.getElementById(curError).innerText)"></div>
</div>
Java/TypeScript
<script>
function saveMyData(curError) {
//this will be where data is saved or emailed
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1; //January is 0!
var yyyy = today.getFullYear();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
if (dd < 10) {
dd = '0' + dd
}
if (h < 10) {
h = "0" + h;
}
if (s < 10)
{
s = "0"+s;
}
if (m < 10) {
m = "0"+m;
}
if (mm < 10) {
mm = '0' + mm
}
today = dd + '/' + mm + '/' + yyyy +" , "+h+":"+m+":"+s;
prevErrors.innerText += "\n "+today+", "+curError;
}
</script>
とにかく typescript と javascript が事実上同一であることを最近発見したばかりなので、typescript を起動するのがこんなにも大変だったことを少し恥ずかしく思います。
質問
dxtextArea
このコントロールから関数にデータを送信しようとしています。ご覧のとおり、既にinnerTextを使用してみましたが、これは関数に何も送信していないようです (エラーが発生します:
'Uncaught TypeError: Cannot read property 'innerText' of null', line 1, file 'http://localhost:51828/index.html#'.
textArea にデータが存在する場合でも。
誰もがこの問題に出くわした/それを解決する方法を知っている/それともJava/typescriptの知識における私の愚かさと素朴さですか?
編集
メソッド呼び出しを innerText から値に変更する (そして ID を引用符で囲む) ように言われましたが、それでも問題は解決していません。
saveMyData(document.getElementById('curError').value)"
EDIT 2私の完全なスクリプト:
<div data-options="dxView : { name: 'ErrorLogging', title: 'ErrorLogging' } " >
<div data-options="dxContent : { targetPlaceholder: 'content' } " >
<p>Use this page to log errors</p>
<br />
<p style="font-style:italic">PreviousErrors</p>
<p id="prevErrors" style="font-style:italic"></p>
<br />
<div id="curError" data-bind="dxTextArea: { }" ></div>
<br />
<div data-bind="dxButton: { text: 'Save and return to main menu' }" onclick="saveMyData(document.getElementById('curError').textContent)"></div>
</div>
</div>
<script>
function saveMyData(elem) {
//this will be where data is saved or emailed
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1; //January is 0!
var yyyy = today.getFullYear();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
//add a '0' in front of single digit values
if (dd < 10) {
dd = '0' + dd
}
if (h < 10) {
h = "0" + h;
}
if (s < 10)
{
s = "0"+s;
}
if (m < 10) {
m = "0"+m;
}
if (mm < 10) {
mm = '0' + mm
}
if (elem.textContent) {
var curError = elem.textContent ?
elem.textContent :
elem.innerText;
}
alert(curError);
today = dd + '/' + mm + '/' + yyyy +" , "+h+":"+m+":"+s; //created string containing todays' date and time
prevErrors.innerText += "\n " + today + ", " + elem;
}
</script>