Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery KnockoutJS更改复选框更改事件的输入值和文本_Jquery_Knockout.js - Fatal编程技术网

Jquery KnockoutJS更改复选框更改事件的输入值和文本

Jquery KnockoutJS更改复选框更改事件的输入值和文本,jquery,knockout.js,Jquery,Knockout.js,我有一个技能列表,当用户检查技能时,如果选中,将显示多年的输入。我的问题是,如果用户输入了一年,但随后取消了对技能的检查,那么数年的值仍然与输入上的文本一起保存在observable中。我不确定是否需要使用事件处理程序、订阅函数或仅使用ko计算函数清除该值 年: var应用程序=函数(){ this.ApplicationSkills=ko.observearray(); }; var ApplicationSkill=函数(){ var self=这个; this.Skill_Skil

我有一个技能列表,当用户检查技能时,如果选中,将显示多年的输入。我的问题是,如果用户输入了一年,但随后取消了对技能的检查,那么数年的值仍然与输入上的文本一起保存在observable中。我不确定是否需要使用事件处理程序、订阅函数或仅使用ko计算函数清除该值



年:

var应用程序=函数(){ this.ApplicationSkills=ko.observearray(); }; var ApplicationSkill=函数(){ var self=这个; this.Skill_SkillTypeID=ko.可观察(0); this.Skill_Years=ko.observable().extend({maxLength:2,number:true}); 此.Skill_Checked=ko.可观察(假); this.Skill_SkillTypeName=ko.observable(); }; var vm=新应用程序(); ko.应用绑定(vm); var skill=new ApplicationSkill() skill.skill\u SkillTypeID(1); skill.skill_SkillTypeName(“数据输入”); vm.ApplicationSkills.push(技能);
我会把它作为一个计算:

var skillYears = ko.observable();
this.Skill_Years = ko.computed({
    read: function () { return this.Skill_Checked() ? skillYears() : undefined; },
    write: skillYears
}, this);

你试过使用击倒扩展器吗@我没有。我对KO还是个新手,所以我对它所能做的一切都不熟悉。我会检查它。在实现您的解决方案时,IE7/8中出现以下错误:SCRIPT438:对象不支持属性或方法'Skill_Checked'ViewModel.js,第387行字符29您的
应用程序kill
ViewModel中是否存在
Skill_Checked
属性?@Esteban它确实存在。我将该对象用于span标签和文本框上的可见:绑定,因为
Skill\u Years
现在取决于
Skill\u Checked
您需要先定义
Skill\u Checked
。@Brandon我犯了一个愚蠢的错误。谢谢,现在工作得很好。
var skillYears = ko.observable();
this.Skill_Years = ko.computed({
    read: function () { return this.Skill_Checked() ? skillYears() : undefined; },
    write: skillYears
}, this);