MVC addmethod js код не работает для проверки на стороне клиента - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь узнать, как настроить проверку на стороне клиента в MVC, и ничто из того, что я делаю или могу сделать, не может заставить это работать. Пожалуйста помоги. Вот мой валидатор. js

/// <reference path="jquery.validate.js" />  
/// <reference path="jquery.validate.unobtrusive.js" />  
$.validator.unobtrusive.parse($('form'));
$.validator.unobtrusive.parse('password');
$.validator.unobtrusive.adapters.addSingleVal("password", "badpasswords");//, "errormsg");
//$.validator.unobtrusive.adapters.add("password", function (options) {
//    options.rules["password"] = "#" + options.element.name.replace('.', '_'); // mvc html helpers
//    options.messages["password"] = options.message;
//});

$.validator.addMethod("password", function (value, badpasswords) {
    if (value) {


        return //!badpasswords.split(",").Contains(value.ToString());

        false;


    }
    return false;
},"validator_default"); 

$.validator.unobtrusive.adapters.addBool("password");

$("#_form").validate({
    onkeyup: false,
    onfocusout: false
});
}

Вот что делает:


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title> - My ASP.NET Application</title>
    <link href="/Content/font-awesome.min.css" rel="stylesheet"/>
<link href="/Content/bootstrap.css" rel="stylesheet"/>
<link href="/Content/site.css" rel="stylesheet"/>

    <script src="/Scripts/modernizr-2.8.3.js"></script>


    <script src="/Scripts/jquery.validate.min.js"></script>
    <script src="/Scripts/jquery-3.3.1.js"></script>
    <script src="/Scripts/jquery-3.3.1.js"></script>

    <script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>

    <script src="/Scripts/ClientPasswordValidator.js"></script>



    <link rel="icon" href="/Content/images/icons/32x32.png" sizes="32x32">
    <link rel="icon" href="/Content/images/icons/192x192.png" sizes="192x192">
</head>
<body>
    <div class="navbar navbar-default navbar-fixed-top">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>

            </button>
            <a href='/' class="navbar-brand">
                <div class="hplus-logo"></div>
            </a>
        </div>
        <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
                <li><a href="/Product">Our Products</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <li><a href='/Cart'><i class="fa fa-shopping-cart"></i> Cart</a></li>
            </ul>
        </div>
    </div>
</div>

    <div class="container body-content">
        <script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
        <script src="/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
        <script src="/Scripts/jquery-3.3.1.min.js" type="text/javascript"></script>






<script>$.validator.unobtrusive.parse($('form')); 
    $('#divParent').load("url",
                                                 function () {
                                                 $.validator.unobtrusive.parse($('form'));}
                                                 );
</script>
<script src="/Scripts/jquery.validate-vsdoc.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.min.js"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.min.js"></script>









<script src="/Scripts/ClientPasswordValidator.js"></script>


<div class="container">

<form action="/Login?ReturnUrl=%2Faccount" class="form-signin" method="post"><span class="field-validation-valid text-danger" data-valmsg-for="Username" data-valmsg-replace="true"></span><span class="field-validation-valid text-danger" data-valmsg-for="Password" data-valmsg-replace="true"></span>        <div class="form-group">
            <span asp-validation-for="Email address" class="text-danger"></span>
            <span asp-validation-for="password" class="text-danger"></span>
        </div>
        <h2 class="form-signin-heading">Please sign in</h2>
<label class="control-label" for="Username">Email address</label><input autofocus="" class="form-control" data-val="true" data-val-email="The Username field is not a valid e-mail address." data-val-required="The Username field is required." id="Username" name="Username" placeholder="Email address" type="text" value="" />        <span asp-validation-for="Email address" class="text-danger"></span>
<span class="field-validation-valid text-danger" data-valmsg-for="Username" data-valmsg-replace="true"></span><label class="control-label" for="Password">Password</label><input autofocus="" class="form-control" data-val="true" data-val-minlength="The field Password must be a string or array type with a minimum length of &#39;5&#39;." data-val-minlength-min="5" data-val-password="default_local" data-val-password-badpasswords="12345,qwerty,11111,22222,33333" data-val-required="The Password field is required." id="Password" name="Password" placeholder="Password" type="text" value="" />        <span asp-validation-for="password" class="text-danger"></span>
<span class="field-validation-valid text-danger" data-valmsg-for="Password" data-valmsg-replace="true"></span>        <div class="checkbox">
            <label>
                <input type="checkbox" value="remember-me"> Remember me
            </label>
        </div>
        <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
</form>    </div>
        <hr />
        <footer>
            <p>&copy; H+ Sport 2020 | <a href="https://twitter.com/hplussport" target="_blank">@HPlusSport</a></p>
        </footer>
    </div>

    <script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>

    <script src="/Scripts/jquery.validate.min.js"></script>

    <script src="/Scripts/jquery.validate.unobtrusive.min.js"></script>

    <script src="/Scripts/bootstrap.js"></script>





</body>
</html>

Спасибо за вашу помощь. Мне нужно добавить больше деталей, прежде чем сайт разрешит мне опубликовать это, так что вот что я пробовал до сих пор: я много играл с порядком файлов jquery и связанных js. Я думаю, что у меня есть право заказа на основе общего консенсуса. У меня было несколько файлов "Microsoft .." js, но я их вынул, поскольку они не упоминались в inte rnet как возможные решения. Спасибо еще раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...