我正在尝试执行一些简单的验证,我正在按照 JavaScript& jQuery,The Missing Manual 。我的代码就是这样:
<script src="~/Scripts/jquery-1.6.2.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<form> form code here </form>
<script>
$(document).ready(function() {
$('#vaporizerForm').validate();
});
</script>
我收到了这个错误:
/scripts/jquery-1.6.2.js第15行第1039行未处理的异常
0x800a01b6 - Microsoft JScript运行时错误:对象不支持此属性或方法
如果我删除了$(document).ready部分,并且只是执行此操作,它可以工作:
<script>
$('#vaporizerForm').validate();
</script>
知道为什么$(document).ready()部分不起作用?
编辑 - jQuery调用堆栈和代码
编辑 - 视图中的整个代码
@model IEnumerable<DistributorManagement.Models.Vaporizer>
@{
ViewBag.Title = "Vaporizer";
}
@{
var grid = new @WebGrid(
source: Model,
rowsPerPage: 10);
}
<script src="~/Scripts/jquery-1.6.2.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.validate.js" type="text/javascript"></script>
<script>
$(document).ready(function () {
$('#vaporizerForm').validate();
});
</script>
<form action="#" method="post" name="vaporizerForm" id="vaporizerForm">
<div>
<label>Manufacturer</label>
<input name="manufacturer" type="text" class="required" />
<label>BuildDate</label>
<input name="buildDate" type="text" class="required date" />
<label>Rating</label>
<input name="rating" type="text" class="required number" />
</div>
<div>
<input type="submit" name="submit" value="Submit" />
</div>
</form>
<br />
<h1>Vaporizer Info</h1>
<div class="webgrid-wrapper">
<div id="grid">
@grid.GetHtml(
tableStyle: "webgrid",
headerStyle: "webgrid-header",
footerStyle: "webgrid-footer",
alternatingRowStyle: "webgrid-alternating-rows",
columns: grid.Columns(
grid.Column("Id", "ID"),
grid.Column("Manufacturer"),
grid.Column("Status"),
grid.Column("BuildDate", "Build Date"),
grid.Column("Rating")))
</div>
</div>
答案 0 :(得分:2)
我会找到明显的答案,你确定~/Scripts/jQuery/jquery.validate.js
的文件是否正常?它的行为就像那个文件是空的,或者坏了。
要检查文件是否正常,请导航到该目录,观察文件并在编辑器中打开它,是否有任何内容。
如果你拿出文件准备好的东西,你可能需要以下代码才能看到错误:
try {
$('#vaporizerForm').validate();
}
catch () {
alert('still have error');
}
答案 1 :(得分:0)
试试这个:
<script type="text/javascript" src="~/Scripts/jquery.validate.js"></script>
- 已编辑 -
将$(文件).ready(.......)放在页面底部。
对于某些版本的IE,当您的页面太长时,会发生这种情况....将它放在正文之前!
答案 2 :(得分:0)
将验证脚本放在<form>
。
<script src="~/Scripts/jquery-1.6.2.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script>
$(document).ready(function(){
$('#vaporizeForm').validate();
});
</script>
<form> form code here </form>
Here就是一个小提琴。