我在网上搜索试图了解我所缺少的东西,但我似乎无法得到它。我正在使用asp.net 4.0(显然是webforms),母版页和jQuery验证。有人能告诉我我搞砸了什么吗?
在我的情况下,我不会对需要验证的字段有任何了解,所以我想使用默认方法,只使用class =“required email”等字段。
字段和提交按钮只是常规的html,而不是ASP.NET控件(长篇故事)。当页面呈现时,表单是“form1”,而不是aspnetForm,因为我见过其他人参考。单击提交按钮时,它不会点击任何javascript。它只是回帖。它甚至没有弹出警报框。
我没有正确引用什么?
这是我的简单javascript:
$(document).ready(function () {
alert('in js');
document.getElementById('form1').validate({
alert('in val');
});
网页内容:
<fieldset>
<legend>A simple comment form with submit validation and default messages</legend>
<p>
<label for="cname">Name</label>
<em>*</em><input id="cname" name="name" size="25" class="required" minlength="2" />
</p>
<p>
<label for="cemail">E-Mail</label>
<em>*</em><input id="cemail" name="email" size="25" class="required email" />
</p>
<p>
<label for="curl">URL</label>
<em> </em><input id="curl" name="url" size="25" class="url" value="" />
</p>
<p>
<label for="ccomment">Your comment</label>
<em>*</em><textarea id="ccomment" name="comment" cols="22" class="required"></textarea>
</p>
<p>
<input name="btnsubmit" id="btnsubmit" class="submit" type="submit" value="Submit"/>
</p>
</fieldset>
答案 0 :(得分:3)
您必须正确关闭功能和花括号。更大的问题是您不应该引用本机DOM对象,而应该引用jQuery对象。你的代码应该是:
$(document).ready(function(){
alert('in js');
$('#form1').validate({
alert('in val');
});
});
为简单起见,您的就绪功能也可缩短为$(function(){...});
。
答案 1 :(得分:1)
Asp.net只会在页面上放置一个表单,所以使用$(“form”)来查找它而不知道id。此外,验证选项不会像您一样接收警报,但您可以将其移动到正确的处理程序中,如下所示。希望它有所帮助...
$(function () {
$("form").validate({
submitHandler: function () {
alert("submiting...");
return false;
},
invalidHandler: function () {
alert("invalid form");
return false;
}
});
});
答案 2 :(得分:1)
您应该为validate插件传递一个jquery对象。您正在尝试传递DOM对象以验证插件,这显然无效。
所以用document.getElementById('form1')
替换$('#form1')
。
现在vaidation将顺利进行。
答案 3 :(得分:0)
您正在使用原始JS来引用表单,而.validate插件需要一个jQuery对象。试试这个:
$(document).ready(function () {
alert('in js');
$('form').validate({
alert('in val');
});