Knockout Jquery验证

前端之家收集整理的这篇文章主要介绍了Knockout Jquery验证前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用jquery验证设置验证,并且我已经从服务器返回的viewmodel映射到客户端,并成功地将knockout js绑定到一些数据。

我包含一个调用验证,但验证从不触发,但是如果我在输入框中放置一个类,然后调用有效,则按预期触发。

有任何想法吗?

<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是在提交时的验证。因此,如果敲除正在中断,即通过实际上不触发onSubmit事件,那将会这样做。您最好的选择可能是在您在sendToServer函数中进行规划时,手动从您的敲门提交事件触发验证:
if (!$('form').valid()){
    $('form').showErrors();
    return false;
}

//otherwise,get on with whatever knockout needs to do
...
return true;
原文链接:https://www.f2er.com/jquery/182549.html

猜你在找的jQuery相关文章