我们使用的是javascript / typescript,并且无法在DevExtreme(打字稿)项目中的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>
函数“ saveMyData”定义为:
<script>
function saveMyData(myData)
{
alert("text is "+myData.innerText);
mytext.innerText += myData.innerText;
}
</script>
但是,警报仅包含
文字是
我们也尝试了
textContent
,但是得到了相同的结果。任何人都知道为什么会这样吗?
屏幕上没有错误,因此我们认为这不是声明错误。
(注:此代码已简化以用于演示目的)。
以下是“最有用/最详细”文档的链接:
Link to dxTextArea documentation
请随时提出澄清/细节,因为我知道我在纸面上解释自己的能力很差。我只会张贴一个小提琴,只是它不会/不会识别
dxTextArea
或dxButton
,所以非常没用!编辑
按照建议使用innerHTML可以得到:
最佳答案
您可以获取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);
但是最好在绑定到dxTextArea的
value
选项的视图模型中使用ko.observable参见小提琴: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());
});
但是,我认为没有任何理由采用这种更干净的方法。