knockout.js 如何将文本区域值属性绑定到函数

m3eecexj  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(136)

我有一个简单的textarea,我想自定义它的文本(如添加分隔线),这是我迄今为止所尝试的:

<textarea rows="5" data-bind="value: function(data) { SetDefaultValue(data); }" />

但我什么也没得到。
当检查生成的HTML时,它没有找到value属性,也没有JavaScript错误。我如何将textareavalue属性绑定到函数?


gev0vcfq

gev0vcfq1#

您可以这样做:

<textarea rows="5" type="text" data-bind="value: SetValue(firstName)" />

而不是JavaScript:

function AppModel() {
this.firstName = "ebram";
this.lastName = "Tharwat";
this.SetValue = function (data) {
    //Do the processing over here
    return data.toUpperCase();
   }
}
ko.applyBindings(new AppModel());
omjgkv6w

omjgkv6w2#

你需要做的是用一个计算的修改你的textarea值,就像这样

<textarea rows="5" type="text" data-bind="value:textarea, valueUpdate: 'afterkeydown'" />

function AppModel() {
    var self = this;
    self.textarea = ko.observable('');

    self.SetValue = ko.computed(function(){
        self.textarea(self.textarea().toUpperCase());
    });

}

示例:http://jsfiddle.net/YEp2V/3/

相关问题