KnockoutJS observable不观察jQuery的empty()事件
KnockoutJS observable doesn't observe jQuery's empty() event
我有几个文本框:本地和外国电话号码以及一个用于切换它们的复选框,如下所示:
TogglePhoneFields = function(isForeign) {
if (isForeign) {
$('#Phone_LocalNumber').attr('disabled', 'disabled');
$('#Phone_LocalNumber').val('');
$('#Phone_ForeignPhoneNumber').removeAttr('disabled');
return $('#Phone_ForeignPhoneNumber').focus();
} else {
$('#Phone_LocalNumber').removeAttr('disabled');
$('#Phone_ForeignPhoneNumber').attr('disabled', 'disabled');
return $('#Phone_ForeignPhoneNumber').val('');
}
};
标记:
<input data-bind="value: localnumber"
id="Phone_LocalNumber" type="text" value='' />
<input data-bind="checked: isForeignPhoneNumber"
id="Phone_IsForeignPhoneNumber" type="checkbox" value="true" />
<input data-bind="value: foreignphonenumber"
id="Phone_ForeignPhoneNumber" type="text" value="" />
我对这些电话号码进行了验证,很明显,在本地电话号码中输入值后,勾选"IsForeign"复选框(它调用 TogglePhoneFields(true))并取消选中它,可观察的值不会被清除。
我正在努力解释这一点,如果根本不清楚,我可以写一个 jsFiddler。问题基本上是当可观察项的值被javascript代码操作时,如何更新可观察项?
挖空值绑定订阅它们绑定到的输入上的更改事件。如果使用 val 更新 jquery 中的输入,则需要触发更改事件,否则将不会触发值绑定。
所以例如
$('#Phone_LocalNumber').val('').change();
希望这有帮助。
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- 从控制器返回后Ajax启动事件激发
- 如何从画布上的某个移动事件中获取X和Y
- Jquery:未触发select事件
- JsFiddle上的鼠标事件不起作用
- 只覆盖箭头键滚动事件
- .empty() 清除事件
- KnockoutJS observable不观察jQuery的empty()事件
- jquery .empty() 与按键事件冲突