我想要一个带有2种状态的html数字文本框,当聚焦时,它必须显示所有小数位,而当聚焦丢失时,仅显示2个小数.我几乎实现了.
HTML:
<input data-bind="attr: { 'data-numericvalue': valueToRound}" class="numerictextbox"
type="number"/>
Javascript:
var viewModel = {
valueToRound: ko.observable(7.4267),
};
//NUMERIC TEXTBOX BEHAVIOUR
$('.numerictextbox').focusout(function () {
$(this).attr("data-numericvalue", this.value); //this line does not update the viewModel
this.value = parseFloat($(this).attr("data-numericvalue")).toFixed(2);
});
$('.numerictextbox').focusin(function () {
if ($(this).attr("data-numericvalue") !== undefined) this.value = $(this).attr("data-numericvalue");
});
ko.applyBindings(viewModel);
Jsfiddle:https://jsfiddle.net/7zzt3Lbf/64/
但是我的问题是,发生聚焦时,它不会更新绑定属性(在这种情况下为viewModel).这是我的代码的简化版本,因此我希望它对我的实际场景中的许多属性通用.
解决方法:
您混入了太多的jQuery