jquery - knockout + Jquery 验证

标签 jquery jquery-validate knockout.js

我正在尝试使用 jquery validate 设置验证,并且我已经从服务器返回 View 模型,映射到客户端并成功让 knockout js 绑定(bind)一些数据。

我包含了一个验证调用,但验证永远不会触发,但是如果我在输入框中放置一个类,然后调用 valid 它会按预期触发。

有什么想法吗?

<script type="text/javascript">
        var viewModel;
        $(document).ready(function () {
            $.ajax({
                url: 'Home/GetUserData',
                type: 'post',
                success: function (data) {
                    viewModel = ko.mapping.fromJS(data);
                    viewModel.save = function () { sendToServer(); };
                    ko.applyBindings(viewModel);
                    main();
                }
            });
        });

        function main() {
            $("form").validate({
                rules: {
                    birthPlace: {
                        required: true,
                        minlength: 2
                    }
                }
            });
        }

        function sendToServer() {
            alert($("form").valid());
        }

    </script>
}
<h2>@ViewBag.Message</h2>
<form id="nameSubmit" action="">
    <div>
        The name is: <span id="test" data-bind="text: Name"></span>
    </div>
    <div>
        He's <span id="age" data-bind="text: Age"></span>
    </div>
    <div>
        He's from
        <input type="text" id="birthPlace" name="birthPlace"/>
    </div>
    <div>
        <button data-bind="click: save">Click Me</button>
    </div>
</form>

最佳答案

默认情况下,jQuery Validate 在提交时进行验证。因此,如果 knockout 中断了这一点,即没有实际触发 onSubmit 事件,那么就会做到这一点。您最好的选择可能是按照您在 sendToServer 函数中的计划进行操作 - 手动触发 knockout 提交事件的验证:

if (!$('form').valid()){
    $('form').showErrors();
    return false;
}

//otherwise, get on with whatever knockout needs to do
...
return true;

关于jquery - knockout + Jquery 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5734851/

相关文章:

javascript - 比较负值在 Javascript 中不能正常工作

javascript - 创建动态 JavaScript 变量,其中左侧和右侧都是动态的

javascript - 在输入框中添加破折号

c# - ASP .NET MVC 在每个字段级别禁用客户端验证

php - 在这种情况下我的 php 应该返回什么

knockout.js - 从包含 View 模型访问数据

jquery-mobile - jquery mobile 和 Durandal

javascript - 如何创建一个没有绝对位置的简单 jQuery 图像 slider

javascript - Rails 中的 Jquery 异步表单提交

javascript - 将函数的值保存在变量中,该变量返回随机值