2

おそらく非常に単純な質問ですが、テキストエリアから 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>

iOS での表示イメージ

4

2 に答える 2

1

私はそれを使用してそれを見つけました

var val = $("#textArea").dxTextArea("instance").option("value");

と呼ばれる ID を取得できましたtextArea。これは、メソッド/関数の呼び出しなしで使用できます。

これで、次のコードを使用できます。

prevErrors.innerText += "\n " + today + ", " + val;

dxTextArea の入力をデータに取得できるようにします。

問題が解決しました!:)

于 2014-09-18T10:00:55.457 に答える