0

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

4

1 に答える 1

1

動作するはずです。しかし、あなたが試した価値観はそうではありません。'a''1'およびパターン'?'の有効な値ではありません。'^[a-z0-9].$'このパターンでは、最初の記号が文字(az)または数字で、2番目の記号がanyである値のみが有効になります。例:'1a'、、'b#''Ab'

于 2012-10-10T13:40:47.920 に答える