【问题标题】:How to get the value to view models when a control's value is changed using jQuery?使用 jQuery 更改控件的值时如何获取视图模型的值?
【发布时间】:2015-08-05 06:25:12
【问题描述】:

我在淘汰赛js中声明了一个文本框,下拉列表。如果我像这样使用 jQuery 动态更改文本框或下拉列表的值...

$('#IdNo').val(_IDNo);//for textbox
$('#IdNo').change();
$('#Subjects option').filter(function () { return $.trim($(this).val()) == parseInt(subjectbind); }).attr('selected', true);//for dropdown
$('#Subjects').change();

...那么change() 不会将该值绑定到淘汰赛。更改后的值确实会出现在 UI 中,但不会反映在 View Model 中以供进一步操作。

【问题讨论】:

  • @supercool:我在获取依赖值时使用订阅方法。问题是当我刷新时,我会根据需要在 UI 中更改值,但它没有绑定到淘汰值。
  • 它会按预期工作正常检查这里jsfiddle.net/LkqTU/25697。告诉我
  • @supercool:我能理解小提琴。当页面刷新到淘汰赛时,是否可以保留更改的值..
  • page refresh 不,我们不能保留任何值,除非我们存储在某个地方,即刷新时一切都回到初始状态。
  • 我将值存储在会话中。当我刷新时,我将会话值存储在变量中,并将其分配给使用上述代码的文本框。当我这样做时,它不会绑定到淘汰赛吗?我需要参考其他一些选项吗?

标签: javascript jquery asp.net-mvc knockout.js


【解决方案1】:

如果你想确保 Knockout 在你手动更新 DOM 时注意到,你需要use the trigger method 像这样:

$('#Subjects').trigger('change');

change 方法可用于为事件注册处理程序

PS。如果您手动更新 DOM,那么您应该评估为什么/如何使用 KnockoutJS...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-27
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    相关资源
    最近更新 更多