敲除验证模式抛出一切错误

时间:2012-10-10 13:09:03

标签: asp.net-mvc-3 knockout.js knockout-validation

我添加了淘汰赛验证,但它似乎抛出了我放在场上的所有内容: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

1 个答案:

答案 0 :(得分:1)

它应该工作。但你试过的价值 - 不是。 'a''1''?'不是'^[a-z0-9].$'模式的有效值。对于此模式,只有第一个符号为字母(a-z)或数字,第二个符号为any的值才有效。例如:'1a''b#''Ab'