我有几个文本框:本地和外国电话号码以及一个用于切换它们的复选框,如下所示:
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代码操作时如何更新可观察项目?