我添加了淘汰赛验证,但它似乎抛出了我放在场上的所有内容:a,1,?等等 - 唯一有效的方法就是让场地为空。我正在使用ko验证库,并使用模式规则扩展它。
ko模板:
<script type="text/html" id="solutionRowTemplate">
<tr>
<td>
<input type="text" class="whole" data-bind="value: firstWhole, valueUpdate: 'afterkeydown'" />
</td>
</tr>
</script>
ko viewmodel:
<script type="text/javascript">
var solutionData = @Html.Raw(new JavaScriptSerializer().Serialize(Model.SolutionList));
function SolutionModel(firstWhole) {
this.firstWhole = ko.observable(firstWhole);
}
var viewModel = {
solutions: ko.observableArray(ko.utils.arrayMap(solutionData, function (item) {
var model = new SolutionModel(item.FirstWhole);
model.firstWhole.extend({ pattern: '^[a-z0-9].$' });
return model;
})),
addSolution: function () {
this.solutions.push(new SolutionModel('', '', '', '', '', '', '', '', '', '', '', ''));
},
};
ko.applyBindings(viewModel);
</script>
如果我对如何添加扩展错误,那就不会感到惊讶......
谢谢, -Rob
答案 0 :(得分:1)
它应该工作。但你试过的价值 - 不是。 'a'
,'1'
和'?'
不是'^[a-z0-9].$'
模式的有效值。对于此模式,只有第一个符号为字母(a-z)或数字,第二个符号为any的值才有效。例如:'1a'
,'b#'
,'Ab'
。