Internet explorer IE浏览器在可观察属性获得新值时再次触发onchange事件

Internet explorer IE浏览器在可观察属性获得新值时再次触发onchange事件,internet-explorer,knockout.js,Internet Explorer,Knockout.js,我有一个web应用程序,其中我正在为客户端使用Knockout js。我有一个网格,有3列,标价,折扣和客户价格。标价以四舍五入的值显示,而折扣和客户价格需要以2位小数显示。此外,如果标价或折扣发生变化,则应自动计算客户价格 为了实现这一点,我在价目表上设置了onchange事件。我还使用了两个可观察对象,listPrice和displayedListPrice。ListPrice用于存储未格式化的值,displayedListPrice用于存储格式化的值 以下问题仅出现在IE中-在函数中我有一

我有一个web应用程序,其中我正在为客户端使用Knockout js。我有一个网格,有3列,标价,折扣和客户价格。标价以四舍五入的值显示,而折扣和客户价格需要以2位小数显示。此外,如果标价或折扣发生变化,则应自动计算客户价格

为了实现这一点,我在价目表上设置了onchange事件。我还使用了两个可观察对象,listPrice和displayedListPrice。ListPrice用于存储未格式化的值,displayedListPrice用于存储格式化的值

以下问题仅出现在IE中-在函数中我有一条语句,
this.displayedListPrice(格式为this.ListPrice))

上述语句导致onchange事件再次激发。我怎样才能防止呢


谢谢

您可以使用另一个事件进行值绑定,类似于这样


这里有文档:

对不起,我离开了一段时间,没有注意到其他用户的评论。 不管怎样,这就是我所做的-

<div class="clmn7" ><input class="number"  data-bind="uniqueName: true,value: displayedListPrice, event: {focus: pac.partsPricing.Part.prototype.onFocusListPrice , blur: pac.partsPricing.Part.prototype.listPriceChanged}, css: { pricechange : listPrice()!=masterListPrice(), nopricechange:listPrice()==masterListPrice()} , attr: { title: masterSPrice}, enable: viewModel.program().isEnabled() && status()!='Submitted' "/></div>


因此,我没有使用onChange事件来捕获事件并进行处理,而是使用了focus和blur事件来实现相同的功能。

既然您的解决方案成功了,请将您的解决方案作为答案发布,然后将该答案标记为已接受。这有助于StackOverflow生态系统。