web-dev-qa-db-ja.com

jQuery検証:キャッチされていないTypeError:$(...)。「有効は関数ではありません」と有効な参照/順序

呼び出そうとすると、「Uncaught TypeError:$(...)。valid is a function」というエラーメッセージが表示されます...

javascript

$('input[data-val=true]').on('blur', function() {
    $(this).valid();
});

[〜#〜] html [〜#〜]

<div class="col-xs-12 col-sm-5" style="margin-left:4px">
            <input required="True" class="form-control" data-bind="value: battleModel.ReserveTroopCount" data-val="true" data-val-number="The field Troop reserve must be a number." data-val-range="Troop reserve must be between 0 and 1000." data-val-range-max="1000" data-val-range-min="0" data-val-required="Troop reserve is required." id="ReserveTroopCount" name="ReserveTroopCount" placeholder="Troop reserve..." tabindex="1" title="Enter the minimum troops you want to reserve after the battle" type="text" value="5">

            <span class="field-validation-valid" data-valmsg-for="ReserveTroopCount" data-valmsg-replace="true"></span>
        </div>

参照

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="/Content/bootstrap.css" rel="stylesheet" />
<script src="@(Url.Content("/Scripts/jquery-2.2.4.js"))" type="text/javascript"></script>
<script src="@(Url.Content("/Scripts/jquery.validate.js"))" type="text/javascript"></script>
<script src="@(Url.Content("/Scripts/jquery.validate.unobtrusive.js"))" type="text/javascript"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="~/Scripts/bootstrap-toolkit.js"></script>
@Scripts.Render("http://ajax.aspnetcdn.com/ajax/knockout/knockout-3.4.2.js")
<script src="../../Scripts/knockout.mapping-latest.js" type="text/javascript"></script>
<script src="@(Url.Content("~/Scripts/RRCommon.js"))" type="text/javascript"></script>
<script src="@(Url.Content("~/Scripts/StrUtil.js"))" type="text/javascript"></script>
<script src="@(Url.Content("~/Scripts/RRRoll.js"))" type="text/javascript"></script>

私のjqueryファイルはローカルですが、有効です。今日、NuGetからそれらを引き出しました。ブラウザに読み込まれたすべてのスクリプトが表示されます...

スクリプトソースを表示するブラウザ開発ツールのスクリーンショット

何が欠けていますか?私がオンラインで見たものはすべて、スクリプト参照がないか、順序が間違っていることを示しています。他に何をすべきかわからない。このエラーは、参照されているjqueryファイルがロードされていないことを示しています。また、jqueryファイルへのcdn参照をオンラインで試しましたが、同じエラーが発生しました。

4
James

JQueryフォーム検証プラグインを使用するには、まずフォームでプラグインを設定する必要があります。 documentation はこの例をいくつか示していますが、基本的にはフォームを選択して.validate()関数を実行する必要があります。

var form = $( "#myform" );
form.validate();

もちろんフォーム要素がないので、これは追加する必要があるものです。

3
Derek Brown

パセリプラグインを使用している場合は$(this).parsley().isValid()を使用してください

0
Arun BS