jQuery验证:未捕获TypeError:$(...)。“有效不是函数”有效的参考/订单 [英] jQuery validate: Uncaught TypeError: $(...)."valid is not a function" with valid references/order

查看:77
本文介绍了jQuery验证:未捕获TypeError:$(...)。“有效不是函数”有效的参考/订单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在尝试呼叫时收到错误消息Uncaught TypeError:$(...)。valid is not function



javascript

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

HTML

 < div class =col-xs-12 col-sm-5style =margin-left:4px> 
< input required =Trueclass =form-controldata-bind =value:battleModel.ReserveTroopCountdata-val =truedata-val-number =现场部队保留必须是一个号码。 data-val-range =部队预留必须在0到1000之间。 data-val-range-max =1000data-val-range-min =0data-val-required =需要部队预留。 id =ReserveTroopCountname =ReserveTroopCount占位符=部队预留...tabindex =1title =输入战斗后想要保留的最小部队type =textvalue =5> ;

< span class =field-validation-validdata-valmsg-for =ReserveTroopCountdata-valmsg-replace =true>< / span>
< / div>

参考

 < HEAD> 
< meta charset =utf-8>
< meta name =viewportcontent =width = device-width,initial-scale = 1>
< link href =/ Content / bootstrap.css =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.jstype =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引用,但是得到了同样的错误。

解决方案

为了使用jQuery表单验证插件,您需要先在表单上进行设置。 文档提供了一些示例,但基本上您需要选择表单并运行 .validate() function。

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

显然你没有表单元素,所以这是你需要添加的东西。 / p>

I'm getting the error message "Uncaught TypeError: $(...).valid is not a function" when attempting to call...

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>

References

<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>

My jquery files are local, but they are valid. Just pulled them off of NuGet today. I see all of my scripts loaded in the browser...

Screenshot of browser dev tools displaying my script sources

What am I missing? Everything I've seen online suggests either the script reference is missing or they're in the wrong order. Not sure what else to do. The error suggests the referenced jquery files aren't getting loaded. I also tried online cdn references to the jquery files but got the same error.

解决方案

In order to use the jQuery form validation plugin, you need to set it up on your form first. The documentation gives a few examples of this, but basically you need to select the form and run the .validate() function.

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

Obviously you don't have a form element, so this is something you will need to add.

这篇关于jQuery验证:未捕获TypeError:$(...)。“有效不是函数”有效的参考/订单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆