不工作XVAL客户端验证 [英] xVal client-side validation not working
本文介绍了不工作XVAL客户端验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我从网上下载的史蒂夫·桑德森的博客,运行它,它的工作(我后,点击提交)断绝端验证,但客户端没有;
虽然我看了看源,看到生成的JavaScript
&LT;脚本类型=文/ JavaScript的&GT; xVal.AttachValidator(预订 {\"Fields\":[{\"FieldName\":\"ClientName\",\"FieldRules\":[{\"RuleName\":\"Required\",\"RuleParameters\":{}},{\"RuleName\":\"StringLength\",\"RuleParameters\":{\"MaxLength\":\"3\"}}]},{\"FieldName\":\"NumberOfGuests\",\"FieldRules\":[{\"RuleName\":\"Range\",\"RuleParameters\":{\"Min\":\"1\",\"Max\":\"20\",\"Type\":\"decimal\"}},{\"RuleName\":\"DataType\",\"RuleParameters\":{\"Type\":\"Integer\"}}]},{\"FieldName\":\"ArrivalDate\",\"FieldRules\":[{\"RuleName\":\"DataType\",\"RuleParameters\":{\"Type\":\"Date\"}},{\"RuleName\":\"Required\",\"RuleParameters\":{}}]}]})</script>
我的看法code:
&LT;%@页标题=LANGUAGE =C#的MasterPageFile =〜/查看/共享/的Site.MasterAutoEventWireup =真codeBehind = CreateBooking.aspx.cs继承=BookingsDemo.Views.Home.CreateBooking%GT;
&LT;%@导入命名空间=的DomainModel%GT;
&LT; ASP:内容ID =内容1ContentPlaceHolderID =日程地址搜索Maincontent=服务器&GT;
&LT; H1&GT;将一个预订&LT; / H1&GT; &下;使用%(Html.BeginForm()){%GT;
&LT; DIV&GT;
您的名字:&LT;%= Html.TextBox(booking.ClientName)%&GT;
&所述;%= Html.ValidationMessage(booking.ClientName)%&GT;
&LT; / DIV&GT;
&LT; DIV&GT;
客人人数:LT;%= Html.TextBox(booking.NumberOfGuests)%&GT;
&所述;%= Html.ValidationMessage(booking.NumberOfGuests)%&GT;
&LT; / DIV&GT;
&LT; DIV&GT;
预计到达日期:&LT;%= Html.TextBox(booking.ArrivalDate)%&GT;
&所述;%= Html.ValidationMessage(booking.ArrivalDate)%&GT;
&LT; / DIV&GT;
&LT;输入类型=提交/&GT;
&LT;%}%GT;
&LT;%= Html.ClientSideValidation&LT;预订&GT;(预订)%&GT;
&LT; / ASP:内容&GT;
下面是生成的HTML:
&LT;!DOCTYPE HTML PUBLIC - // W3C // DTD XHTML 1.0 Strict标准// ENhttp://www.w3.org/TR/xhtml1/DTD/ XHTML1-strict.dtd&GT;
&LT; HTML的xmlns =http://www.w3.org/1999/xhtml&GT;
&LT; HEAD&GT;&LT; META HTTP-EQUIV =Content-Type的CONTENT =text / html的;字符集= ISO-8859-1/&GT;&LT;标题&GT;&LT; /标题&GT;&LT;链接的href =../内容/的site.css的rel =stylesheet属性类型=文/ CSS/&GT; &LT;脚本类型=文/ JavaScript的SRC =/脚本/ jQuery的-1.2.6.js的&GT;&LT; / SCRIPT&GT;
&LT;脚本类型=文/ JavaScript的SRC =/脚本/ jquery.validate.js&GT;&LT; / SCRIPT&GT;
&LT;脚本类型=文/ JavaScript的SRC =/脚本/ xVal.jquery.validate.js&GT;&LT; / SCRIPT&GT;
&LT; /头&GT;&LT;身体GT;
&LT; DIV CLASS =页&GT; &LT; DIV ID =头&GT;
&LT; DIV ID =标题&GT;
&LT; / DIV&GT; &LT; DIV ID =MenuContainer中&GT;
&LT; / DIV&GT;
&LT; / DIV&GT; &LT; DIV ID =主&GT; &LT; H1&GT;将一个预订&LT; / H1&GT;
&LT;形式的行动=/首页/ CreateBooking的方法=后&GT;
&LT; DIV&GT;
您的名字:其中,输入ID =booking_ClientNameNAME =booking.ClientName类型=文本值=/&GT; &LT; / DIV&GT;
&LT; DIV&GT;
客人人数:或其可输入ID =booking_NumberOfGuestsNAME =booking.NumberOfGuests类型=文本值=/&GT;
&LT; / DIV&GT;
&LT; DIV&GT;
预计到达日期:或其可输入ID =booking_ArrivalDateNAME =booking.ArrivalDate类型=文本值=/&GT; &LT; / DIV&GT; &LT;输入类型=提交/&GT;
&LT; /形式为GT;&LT;脚本类型=文/ JavaScript的&GT; xVal.AttachValidator(预订 {\"Fields\":[{\"FieldName\":\"ClientName\",\"FieldRules\":[{\"RuleName\":\"Required\",\"RuleParameters\":{}},{\"RuleName\":\"StringLength\",\"RuleParameters\":{\"MaxLength\":\"15\"}}]},{\"FieldName\":\"NumberOfGuests\",\"FieldRules\":[{\"RuleName\":\"Range\",\"RuleParameters\":{\"Min\":\"1\",\"Max\":\"20\",\"Type\":\"decimal\"}},{\"RuleName\":\"DataType\",\"RuleParameters\":{\"Type\":\"Integer\"}}]},{\"FieldName\":\"ArrivalDate\",\"FieldRules\":[{\"RuleName\":\"DataType\",\"RuleParameters\":{\"Type\":\"Date\"}},{\"RuleName\":\"Required\",\"RuleParameters\":{}}]}]})</script>
&LT; DIV ID =页脚&GT;
我的示例MVC应用程序和放大器;复印件;版权所有2008
&LT; / DIV&GT; &LT; / DIV&GT;
&LT; / DIV&GT;
&LT; /身体GT;
&LT; / HTML&GT;
解决方案
客户端验证不会从该博客下载的演示工作,
但随着jQuery和XVAL一切的新版本工作正常:)
I downloaded the xVal sample project from Steve Sanderson’s blog, run it, and the sever side validation it's working (after i click submit), but the client side doesn't; although i looked at the source and saw the generated javascript
<script type="text/javascript">xVal.AttachValidator("booking", {"Fields":[{"FieldName":"ClientName","FieldRules":[{"RuleName":"Required","RuleParameters":{}},{"RuleName":"StringLength","RuleParameters":{"MaxLength":"3"}}]},{"FieldName":"NumberOfGuests","FieldRules":[{"RuleName":"Range","RuleParameters":{"Min":"1","Max":"20","Type":"decimal"}},{"RuleName":"DataType","RuleParameters":{"Type":"Integer"}}]},{"FieldName":"ArrivalDate","FieldRules":[{"RuleName":"DataType","RuleParameters":{"Type":"Date"}},{"RuleName":"Required","RuleParameters":{}}]}]})</script>
my view code:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="CreateBooking.aspx.cs" Inherits="BookingsDemo.Views.Home.CreateBooking" %>
<%@ Import Namespace="DomainModel"%>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<h1>Place a booking</h1>
<% using(Html.BeginForm()) { %>
<div>
Your name: <%= Html.TextBox("booking.ClientName") %>
<%= Html.ValidationMessage("booking.ClientName") %>
</div>
<div>
Number of guests: <%= Html.TextBox("booking.NumberOfGuests")%>
<%= Html.ValidationMessage("booking.NumberOfGuests")%>
</div>
<div>
Expected arrival date: <%= Html.TextBox("booking.ArrivalDate")%>
<%= Html.ValidationMessage("booking.ArrivalDate")%>
</div>
<input type="submit" />
<% } %>
<%= Html.ClientSideValidation<Booking>("booking") %>
</asp:Content>
here is the generated html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>
</title><link href="../Content/Site.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/Scripts/jquery-1.2.6.js"></script>
<script type="text/javascript" src="/Scripts/jquery.validate.js"></script>
<script type="text/javascript" src="/Scripts/xVal.jquery.validate.js"></script>
</head>
<body>
<div class="page">
<div id="header">
<div id="title">
</div>
<div id="menucontainer">
</div>
</div>
<div id="main">
<h1>Place a booking</h1>
<form action="/Home/CreateBooking" method="post">
<div>
Your name: <input id="booking_ClientName" name="booking.ClientName" type="text" value="" />
</div>
<div>
Number of guests: <input id="booking_NumberOfGuests" name="booking.NumberOfGuests" type="text" value="" />
</div>
<div>
Expected arrival date: <input id="booking_ArrivalDate" name="booking.ArrivalDate" type="text" value="" />
</div>
<input type="submit" />
</form><script type="text/javascript">xVal.AttachValidator("booking", {"Fields":[{"FieldName":"ClientName","FieldRules":[{"RuleName":"Required","RuleParameters":{}},{"RuleName":"StringLength","RuleParameters":{"MaxLength":"15"}}]},{"FieldName":"NumberOfGuests","FieldRules":[{"RuleName":"Range","RuleParameters":{"Min":"1","Max":"20","Type":"decimal"}},{"RuleName":"DataType","RuleParameters":{"Type":"Integer"}}]},{"FieldName":"ArrivalDate","FieldRules":[{"RuleName":"DataType","RuleParameters":{"Type":"Date"}},{"RuleName":"Required","RuleParameters":{}}]}]})</script>
<div id="footer">
My Sample MVC Application © Copyright 2008
</div>
</div>
</div>
</body>
</html>
解决方案
the client side validation doesn't work in the demo downloaded from that blog, but with the new versions of jquery and xVal everything works fine :)
这篇关于不工作XVAL客户端验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文