更改属性文本并使用挖空保留输入的值
Change attribute text and keep value of an input with knockout
对不起我的英语...不是很好,但我会尝试解释我的问题。我得到了一个包含一些输入字段的表单,该字段必须以货币格式显示值,但该字段的属性"value"必须为float类型。恢复:我希望输入以货币格式显示他的值,但不更改他的浮点值。我正在使用 Knockout 来绑定值。以上是我的一次尝试:网页代码:
<input data-bind="value: unit_price, attr:{text: $parent.currency($data.unit_price())}" type="text" name="unit_price" class="align_right unit_price_col" />
淘汰赛:
self.currency = ko.computed({
read: function(key) {
},
write: function(value) {
console.log(value); // Value of the input
}
});
我的尝试是尝试创建一个计算函数,当值更改时,该函数接收该值,将值格式化为货币,并且仅更改属性文本以显示格式化值,而不更改可观察量的值。这可能吗?
谢谢
计算隐藏了真正的可观察对象,当前版本的 KO 的唯一解决方案是公开值,例如
http://jsfiddle.net/Pv3f8/
ko.extenders.currency = function(observable, options) {
var wrapped = ko.computed({
write: observable,
read: function() {
return Globalize.format(observable(), "c" );
}
});
wrapped.raw = observable;
return wrapped;
};
我已经向KO团队建议他们应该引入第三个功能format
它由bindnigHandlers使用,这样您的可观察量始终返回实际值,但视图使用格式化的值。在此之前,这是一种方式
更新:如果要使用值绑定更新输入中的值,则需要更具创意,因为它将是一个字符串
http://jsfiddle.net/Pv3f8/1/
相关文章:
- 当设置addFromAutocompleteOnly时,剩余文本将保留在输入字段中
- 单击其他元素或鼠标向上时隐藏输入框,但保留一次焦点
- 获取所有输入字段并保留文本字段中的值,即使在使用 javascript 和 php 提交按钮后也是如此
- 我在添加更多输入字段时遇到问题,文本字段中的值不会保留
- 使用onclick()时,在输入中保留必需的标记
- 添加一些值,以便在用户更改该服务器时将其作为占位符输入并保留它
- 使用 Java 脚本或 PHP 提交后保留输入框的最后一个值
- 如何将按钮/输入保留在图像下方
- 如何保留输入复选框值的存储数组
- jQuery clone() 将用户数据保留在输入字段中
- 如何在 AJAX 请求 (Rails) 之间保留表单输入数据
- 如何在验证失败弹簧 MVC 时保留输入表单值
- 如何在页面刷新后保留输入单选按钮的状态
- 更改属性文本并使用挖空保留输入的值
- 如何使程序保留输入的数据(数字)
- 如何使用Knockout JS应用绑定并保留输入值
- 保留输入值,而不管输入类型="number"是否验证
- Angularjs -在重定向期间保留输入的表单数据,以便用户在返回该表单时继续
- 当表单失败时保留输入字段值
- 动态添加输入字段后保留输入值