ノックアウト検証を追加しましたが、フィールドに入力したすべてのものがスローされているようです: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ビューモデル:
<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