如何将endText从dxTextArea传递到Javascript中的函数?

时间:2014-09-17 08:50:57

标签: javascript textarea typescript devextreme

我们正在使用javascript / typescript,但无法传递'输入的文字'来自 DevExtreme(Typescript)项目中的dxTextArea

我们正在使用:

 <div id="myTextArea" data-bind="dxTextArea: {showClearButton: true,value: 'MyTests'}" ></div>

 <div  data-bind="dxButton: { text: 'Save text' }" onclick="saveMyData(document.getElementById('myTextArea').innerText)"></div> 

使用&#34; saveMyData&#34;定义为:

<script>
function saveMyData(myData)
{
alert("text is "+myData.innerText);
mytext.innerText += myData.innerText;
}
</script>

但是,警报仅包含

  

文字是


我们也尝试了textContent,但结果相同。

任何人都知道为什么会发生这种情况?

屏幕上没有错误,因此我们不会认为这是一个声明错误。

(N.B。此代码已经过简化以用于演示目的)。


以下是“最有帮助/最详细”的链接。文档:

Link to dxTextArea documentation

请随时询问澄清/详细信息,因为我知道我在纸上解释自己非常糟糕&#39;。我会张贴一个小提琴,但它不会识别dxTextAreadxButton,所以非常无用!

修改

建议使用innerHTML:

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以获取dxTextArea小部件的实例并获取选项value的值

请参阅小提琴:http://jsfiddle.net/tabalinas/c4dmsmeL/2/

<div id="textArea" data-bind="dxTextArea: { value: 'My value' }"></div>
<div data-bind="dxButton: { clickAction: buttonClick, text: 'Get value' }"></div>

var vm = {
    buttonClick: function() {
        var val = $("#textArea").dxTextArea("instance").option("value");
        alert(val);
    }
};

ko.applyBindings(vm);

但最好在视图模型中使用ko.observable绑定到dxTextArea的value选项

请参阅小提琴:http://jsfiddle.net/tabalinas/c4dmsmeL/

<div data-bind="dxTextArea: { value: textAreaValue }"></div>
Text entered: <span data-bind="text: textAreaValue">

var vm = {
    textAreaValue: ko.observable("My value")
};

ko.applyBindings(vm);

如果您想玩小部件内容,您可以执行以下操作: http://jsfiddle.net/tabalinas/c4dmsmeL/3/

<div id="textArea" data-bind="dxTextArea: { value: 'My Value' }"></div>
<button id="getValue">Get value</button>


ko.applyBindings();

$("#getValue").click(function() {
    alert($("#textArea").find("textarea").val());
});

但我认为没有任何理由采取这种方式采取更清洁的方法。

答案 1 :(得分:0)

<div
    id="myTextArea"
    data-bind="dxTextArea: {showClearButton: true,value: 'MyTests'}">
    CONTENT
</div>
 <div
    data-bind="dxButton: { text: 'Save text' }"
    onclick="saveMyData('myTextArea')">TEXT TO CLICK
 </div>

<script>
    function saveMyData(objID) {
        if (obj = document.getElementById(objID))
        {
            alert(obj.innerHTML);
            obj.innerHTML = obj.innerHTML + " MORE TEXT.. ";
        } else
        {
            alert("Object with ID " + objID + " not found");
        }
    }
</script>

也许这有助于您:http://www.devexpress.com/Support/Center/Question/Details/Q461148