我有asp.net mvc3项目,我在一个带有敲除绑定的表上进行批量编辑.我想在保存数据时进行必需和数字验证等验证.是否有更简单的方法来敲除验证.PS:我没有使用表格.
我正在使用MVC,Knockout和Knockout Validation来验证我的视图模型.
我遇到了一个问题,即视图模型属性的验证在加载时立即触发.换句话说,在用户尝试更改其值之前,"我需要此字段"显示在我的输入旁边.
下拉(选择)控件特别发生此问题.
我猜这是我通过某种方式无意中更改/访问/改变我的javascript代码的另一部分中的observable而创建的问题.但是,我不知道如何追踪这一点.
有没有办法,我可以以某种方式订阅或跟踪甚至导致Knockout验证中的验证的火灾?我只需要知道为什么它会以它的方式发射.我非常确信isValid()函数的值始终为false.
以下是我在页面加载时设置HTML的方式示例,不受干扰:
<select class="highlightable validationElement" name="obsstate" data-bind="value: standardAnswers.ans106_1.value" required="true">
<option value="">-- Select -- </option>
<option value="AK">AK</option>
<option value="AL">AL</option>
etc...
</select>
Run Code Online (Sandbox Code Playgroud)

我正在尝试将验证附加到映射视图.我正在使用Knockout Mapping and Validation插件.少女模特儿:
Person {
int Id;
string Name;
Book[] Books;
}
Book {
int Id;
string Name;
}
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
function viewModel() {
var self = this;
self.persons = ko.observableArray();
// persons are retrieved via AJAX...
ko.mapping.fromJS(persons, {}, self.persons);
}
jQuery(function( $ ) {
ko.applyBindings(new viewModel());
});
Run Code Online (Sandbox Code Playgroud)
如何扩展observableArray人员以设置验证规则和消息?我需要验证人员和书籍子数组属性.我发现只有使用显式模型设置的示例,没有自动映射,例如:
Name: ko.observable().extend({ required: true })
Run Code Online (Sandbox Code Playgroud)
然后我需要设置ko.validatedObservable,isValid和validation.init,但我真的不知道如何处理/组织这个.你能帮忙吗?
我正在使用Knockout Validation插件并使用扩展器根据需要设置observable:
myObservable.extend({required:true});
Run Code Online (Sandbox Code Playgroud)
添加后我可以移除扩展器吗?
我正在使用Asp.net MVC3和knockoutjs库.我需要做一些客户端验证.我正在探索淘汰赛验证插件.
所以我在我的js代码中声明了以下ko.observable值:
var numberValue = ko.observable().extend({ number: true })
Run Code Online (Sandbox Code Playgroud)
这是我的观点部分:
<input data-bind = "value: numberValue " />
Run Code Online (Sandbox Code Playgroud)
当用户输入一些不是数字的值时,会显示错误消息:"请输入一个数字".我可以显示不同的错误消息但仍使用本机规则吗?我不想为此编写自定义验证逻辑.任何有关工作示例的帮助将不胜感激.谢谢!
我试图使用条件语句KnockoutValidation.见下面的代码:
self.transactionType = ko.observable('Option1');
self.ConditionalField = ko.observable().extend({
required: true,
onlyIf: self.transactionType = ="Option2"
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用.我想要ConditionalField只有transactionType有价值的要求'Option2'.
使用knockout.validation.js进行条件验证的最佳方法是什么?
我们正在使用Knockout.js和Knockout-validation插件.当用户返回到具有验证错误的页面时,我们希望显示错误消息.有没有人知道是否有可能在没有实际更改约束答案的情况下触发敲除验证?
我非常喜欢Eric Barnard的淘汰验证lib与observable集成,允许分组,并提供自定义验证器可插拔性(包括即时验证器).有几个地方可以提供更多的UX灵活性/友好性,但总的来说,它有相当充分的文档...... 除了imo,它涉及到异步验证器.
今天我在这个问题上进行了搜索和着陆之前,我已经与它搏斗了几个小时.我想我和原作者有同样的问题/问题,但同意不清楚duxa究竟要求的是什么.我想更多地关注这个问题,所以我也在这里问.
function MyViewModel() {
var self = this;
self.nestedModel1.prop1 = ko.observable().extend({
required: { message: 'Model1 Prop1 is required.' },
maxLength: {
params: 140,
message: '{0} characters max please.'
}
});
self.nestedModel2.prop2 = ko.observable().extend({
required: { message: 'Model2 Prop2 is required' },
validation: {
async: true,
validator: function(val, opts, callback) {
$.ajax({ // BREAKPOINT #1
url: '/validate-remote',
type: 'POST',
data: { ...some data... }
})
.success(function(response) {
if (response == true) …Run Code Online (Sandbox Code Playgroud) javascript asynchronous knockout-2.0 knockout.js knockout-validation
我有一个使用Knockout.js进行页面设置并使用Knockout-Validation.
在页面加载期间,我在选择框上放置了另一个插件,该选项框会触发更改,从而触发验证.我需要能够使用JS清除该错误,因此我可以从一个外观新鲜的用户界面开始,并在表单帖子上提供反馈或选择框更改.
我找不到任何允许我在Knockout-Validation中清除错误的内容.
我想select在我的视图中为一个元素添加一个CSS类,我的视图模型有一个我使用Knockout-Validation扩展的属性:
self.selectedRootCause = ko.observable().extend({
required: true
});
Run Code Online (Sandbox Code Playgroud)
然后我select是这样的:
<form data-bind="submit: closeComplaint" method="post">
<select data-bind="options: rootCauses,
optionsText: 'RootCauseText',
value: selectedRootCause,
optionsCaption: 'Choose..',
validationOptions: { errorElementClass:
'input-validation-error' }">
</select>
<input type="submit" value="Close Complaint" />
</form>
Run Code Online (Sandbox Code Playgroud)
我的closeComplaint功能看起来像这样:
self.closeComplaint = function () {
if (self.errors().length == 0) {
$.ajax({
url: '@Url.Action("CloseComplaint")',
data: new DetailsComplaintAdmin(self.currentComplaint(),
self.selectedRootCause().RootCauseId
),
success: function (data) {
console.log(data);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
只是为了完成,这是我的self.errors()功能:
self.errors = ko.validation.group(self);
Run Code Online (Sandbox Code Playgroud)
问题是,当我提交表单时,类input-validation-error似乎没有添加到我的select输入中?有任何想法吗?