Javascript 页面加载时会显示select元素的敲除验证

Javascript 页面加载时会显示select元素的敲除验证,javascript,validation,knockout.js,Javascript,Validation,Knockout.js,我的问题和你的完全一样。但公认的解决方案并不能解决问题 以下是我的表单元素标记: <select class="form-control" data-bind="options: industries, optionsText: 'description', optionsValue: 'code', optionsCaption: 'Choose...', value: industry_code" ></select> 我试图使用以下代码将此字段设为

我的问题和你的完全一样。但公认的解决方案并不能解决问题

以下是我的表单元素标记:

<select
    class="form-control"
    data-bind="options: industries, optionsText: 'description', optionsValue: 'code', optionsCaption: 'Choose...', value: industry_code"
></select>
我试图使用以下代码将此字段设为必填字段:

self.industry_code.extend({
    required: { message: "Please select an industry." }
});
它非常适合选择、更新等。但是当我第一次加载表单时,会出现“请选择一个行业”消息。我的其他敲除验证代码(对于
元素)都没有这样做,所以我希望这一个以相同的方式运行

我确实尝试了上述问题中提到的解决方案(事实上,我已经在使用
选项caption
绑定)。也许我错过了一步。。。模糊到几乎毫无用处的地步


还有其他人解决了这个问题吗?

你的问题很容易解决。首次初始化viewModel时,需要调用此指令

self.Errors.showAllMessages(false)

这将禁用第一次加载时的所有错误。希望这有帮助。

您自己编写了
required
extender吗?也许这个解决方案会很有用-?类似地,如果您使用验证插件的
group
函数来触发验证,那么您需要确保在页面加载期间不执行该调用。看,您没有提供足够的代码来重新编写您的场景。你能用更多的代码来更新这个问题吗,也许有一把小提琴作后盾?(如果我想象你的代码可能是什么样子的:加载时没有错误消息。)我建议你使用,你不必重新发明轮子。使用它是完美的:ko.validation.group(yourViewModel,{deep:true})。showAllMessages(false)。。。。。。。。。。。。但是,必须在调用applyBindings:ko.applyBindings(yourViewModel)。。。。。。。。。。。。否则就不行了。
self.Errors.showAllMessages(false)