Jquery MVC 4远程验证失败
我正在尝试实施远程验证,但未能调用操作方法: 当我在Firebug中测试时,页面上出现了一个错误,应该验证其中一个字段。这很可能是远程验证不起作用的根本原因 我在_LayoutView中的脚本Jquery MVC 4远程验证失败,jquery,asp.net-mvc,jquery-validate,unobtrusive-validation,Jquery,Asp.net Mvc,Jquery Validate,Unobtrusive Validation,我正在尝试实施远程验证,但未能调用操作方法: 当我在Firebug中测试时,页面上出现了一个错误,应该验证其中一个字段。这很可能是远程验证不起作用的根本原因 我在_LayoutView中的脚本 <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"></script> <script src="http://ajax.aspnetcdn.com/ajax/jquery.validat
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
我尝试了jQuery1.8.0,但错误仍然存在
UserReg.Password是视图的一部分
@Html.EditorFor(model => model.UserReg.Password)
这是该字段的呈现页面源:
<input class="text-box single-line password" data-val="true" data-val-length="The Password must be at least 6 characters long." data-val-length-max="100" data-val-length-min="6" data-val-required="The Password field is required." id="UserReg_Password" name="UserReg.Password" type="password" value="" />
有什么想法吗?我从布局视图中删除了这个脚本
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
问题就解决了。客户端验证仍在工作。我从_LayoutView中删除了此脚本
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
问题就解决了。客户端验证仍在工作。jQuery验证插件要求在验证规则中声明包含任何特殊字符“如点”的输入名称时,将其括在引号中 见: 具有复杂名称的字段(括号、点) “如果表单包含使用非法名称的字段 JavaScript标识符,在使用 规则选项:“ 如果您不能这样做,请尝试将此
输入切换为没有任何特殊字符的名称
旁注:您包括了jQuery验证v1.9.0。然而,即使是最新版本的插件v1.10.0,也没有经过测试,无法与jQuery 1.9.0配合使用。如果要保留jQuery 1.9.0,您必须使用Github的“预发行版”。jQuery验证插件要求在验证规则中声明包含任何特殊字符的输入名称时,将其括在引号中
见:
具有复杂名称的字段(括号、点)
“如果表单包含使用非法名称的字段
JavaScript标识符,在使用
规则选项:“
如果您不能这样做,请尝试将此输入切换为没有任何特殊字符的名称
旁注:您包括了jQuery验证v1.9.0。然而,即使是最新版本的插件v1.10.0,也没有经过测试,无法与jQuery 1.9.0配合使用。如果你想保持jQuery 1.9.0,你必须使用Github的“预发行版”。jQuery验证插件要求在验证规则中声明包含任何特殊字符“如点”的输入名称
,并将其括在引号中<代码>“用户注册密码”
;如果您不能这样做,请尝试一个没有任何特殊字符的名称
。请参阅:jquery验证插件
要求在验证规则中声明包含任何特殊字符“如点”的输入
名称
<代码>“用户注册密码”
;如果您不能这样做,请尝试一个没有任何特殊字符的名称。请参阅:不确定没有验证插件,客户端验证如何工作。但是您使用的版本没有使用jQuery1.9进行测试。此外,您的输入
属性
名称包含非法字符,插件通常无法处理该字符。从名称
中删除点。无法从名称中删除点。Razor视图引擎发出元素的名称和id。无论如何,客户端验证肯定是在删除1.9脚本的情况下进行的。据我所知,jQuery.validate和unobtrusive.validate是相互冲突的文件。两者都基于相同的基本库,但不引人注目。validate本身具有其他行为。我的经验是,由于它们相似,如果使用css类声明验证规则,通常会得到预期的结果,但用于相同验证的js声明将不起作用。我认为远程验证也应该有同样的问题。还解释了为什么删除jquery.validate修复了您的问题。不确定在没有validate插件的情况下客户端验证如何工作。但是您使用的版本没有使用jQuery1.9进行测试。此外,您的输入
属性
名称包含非法字符,插件通常无法处理该字符。从名称
中删除点。无法从名称中删除点。Razor视图引擎发出元素的名称和id。无论如何,客户端验证肯定是在删除1.9脚本的情况下进行的。据我所知,jQuery.validate和unobtrusive.validate是相互冲突的文件。两者都基于相同的基本库,但不引人注目。validate本身具有其他行为。我的经验是,由于它们相似,如果使用css类声明验证规则,通常会得到预期的结果,但用于相同验证的js声明将不起作用。我认为远程验证也应该有同样的问题。还解释了为什么删除jquery.validate修复了您的问题。