另一个主页jQuery验证问题/问题

时间:2011-04-29 13:35:14

标签: jquery asp.net master-pages

我在网上搜索试图了解我所缺少的东西,但我似乎无法得到它。我正在使用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>

4 个答案:

答案 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');
  });