Jquery mobile 设置值后加载选择选项

Jquery mobile 设置值后加载选择选项,jquery-mobile,knockout.js,Jquery Mobile,Knockout.js,我的程序流程要求首先在Viewmodel中设置选择选项的值,然后将可用选项加载到Viewmodel中。这会导致问题,通常在此之后的选择列表中将看到第一个可用选项,而选定的选项值保持在指定值 我希望设置新的“valueAllowUnset”会有所帮助,但是我的页面在使用它时变得没有响应 因此,我当前在加载选项后再次设置原始值。奇怪的是,只有当我设置了值,设置了一个不同的值,然后再次设置值时,这才起作用,例如 self.data()[field](orgValue); self.data()[fie

我的程序流程要求首先在Viewmodel中设置选择选项的值,然后将可用选项加载到Viewmodel中。这会导致问题,通常在此之后的选择列表中将看到第一个可用选项,而选定的选项值保持在指定值

我希望设置新的“valueAllowUnset”会有所帮助,但是我的页面在使用它时变得没有响应

因此,我当前在加载选项后再次设置原始值。奇怪的是,只有当我设置了值,设置了一个不同的值,然后再次设置值时,这才起作用,例如

self.data()[field](orgValue);
self.data()[field]({});
self.data()[field](orgValue);
(我将多个选择列表的值存储在self.data observable中,并使用属性索引“field”访问它们。)

我试图将其分解为一个简单的JSFiddle(),但是该行为没有显示在这里,尽管该示例非常类似于我的实际应用程序。然而,我在那里使用了大约30个选择列表

所以我希望,有人能对我的应用程序中出现的错误做出有根据的猜测,我希望我必须将原始值设置三次这一事实可能会提供线索

编辑:此小提琴演示在填充选项列表之前和之后设置所选选项是否与“valueAllowUnset”一起工作:

我正在使用JQuery-Mobile和knockout.js,这导致了这个问题(很抱歉,我一开始就没有想到JQM是个问题)。我现在在填写列表前设置该选项,在填写列表后调用

$("#selectmenuID").selectmenu("refresh");
以显示该选项


挂起的浏览器不是由敲除引起的,我的应用程序中的SelectMenu还有其他订阅。“valueAllowUnset”更改了由我的代码中的问题导致的SelectMenu和触发循环的行为。

在您的小提琴中,我注意到您正在使用
,但您确实需要使用
。试试看有没有不同。谢谢迈克尔,我一直忘了。有趣的是:小提琴演奏得非常完美。我可以在加载选择选项之前或之后设置所需的选项值,该值将被保留。在我的实际应用程序中,a)该值将被第一个加载的选择选项覆盖,b)我只能在加载选项后通过设置值三次来设置该值,如问题所示,c)valueAllowUnset选项挂起浏览器窗口。我想我必须把我的应用程序拆开才能找出问题的确切原因。我真正好奇的是为什么添加
valueAllowUnset
会挂起浏览器。@Michael:没有,我编辑了我的问题。感谢您将自己应用于ko开发,这是一个很棒的工具。感谢您提供更新。那么这是否意味着你已经解决了这个问题?