Javascript 填写和删除所写内容后,如果所需字段未填写,则该按钮将起作用
我有一个页面,如果名字和姓氏没有填写addAddress按钮将无法工作。如果您按下addAddress按钮,这段代码就可以完美地工作,因为它会要求填写这些必填字段。当你需要它时,它会工作,但如果你只是填写它并删除你写的东西,按钮会再次工作。我不明白问题出在哪里Javascript 填写和删除所写内容后,如果所需字段未填写,则该按钮将起作用,javascript,validation,knockout.js,knockout-validation,Javascript,Validation,Knockout.js,Knockout Validation,我有一个页面,如果名字和姓氏没有填写addAddress按钮将无法工作。如果您按下addAddress按钮,这段代码就可以完美地工作,因为它会要求填写这些必填字段。当你需要它时,它会工作,但如果你只是填写它并删除你写的东西,按钮会再次工作。我不明白问题出在哪里 self.addAddress = function () { if (self.FirstName() != undefined && self.LastName() != undefined) {
self.addAddress = function () {
if (self.FirstName() != undefined && self.LastName() != undefined) {
self.selectedAddress(new Address(true));
}
else {
self.errors.showAllMessages();
}
};
我认为当您删除它时,它不再是未定义的,而是空字符串,所以检查空字符串应该可以做到这一点
self.addAddress = function () {
if (self.FirstName() !== '' && self.LastName() !== '') {
self.selectedAddress(new Address(true));
}
else {
self.errors.showAllMessages();
}
正确的方法是定义一个验证组并进行检查。您这样做的方式仅使用显示消息的变体 定义组
this.errors = ko.validation.group(this)
检查它是否有效
this.errors().length === 0
这仅仅是打字错误还是你检查了两次名字?它不再是未定义的,而是空的string@BeardedMan如何更改if语句使其正常工作?@BeardedMan这是打字错误,我的baadI现在自己无法检查它,但不会将未定义的更改为“”(空字符串)做这个把戏?考虑更新你的答案,要么使用<代码>!= = <代码>,或
代码>习语。目前,例如,如果FirstName
意外地将数字0作为其值,则代码将无法按预期工作。此外,此答案鼓励以不好的方式使用ko验证