2011-04-29 17 views
0

我搜索了網絡,試圖瞭解我錯過了什麼,但我似乎無法得到它。我使用的是asp.net 4.0(很明顯,webforms),母版頁和jQuery驗證。有人能告訴我我搞砸了嗎?另一個主頁jQuery驗證問題/問題

就我而言,我將不知道需要驗證領域的任何事情,所以我想使用只是有與類=「所需的電子郵件」字段的默認方法等

字段和提交按鈕只是普通的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> 

回答

1

Asp.net只會把一個網頁上的表單,所以使用$(「形式」),發現它不知道ID。此外,驗證選項不會像您所擁有的那樣獲得警報,但您可以像下面所做的那樣將它移動到正確的處理程序中。希望它有幫助...

$(function() { 
    $("form").validate({ 
     submitHandler: function() { 
      alert("submiting..."); 
      return false; 
     }, 
     invalidHandler: function() { 
      alert("invalid form"); 
      return false; 
     } 
    }); 
}); 
3

你必須正確地關閉功能和大括號。更大的問題是,你不應該引用本地DOM對象,而是一個jQuery對象。您的代碼應該是:

$(document).ready(function(){ 
    alert('in js'); 
    $('#form1').validate({ 
     alert('in val'); 
    }); 
}); 

你準備功能也可以縮短到$(function(){...});爲簡單起見。

0

您正在使用原始JS引用表單,並且.validate插件需要一個jQuery對象。試試這個:

$(document).ready(function() { 
    alert('in js'); 
    $('form').validate({ 
    alert('in val'); 
    }); 
1

你應該爲驗證插件傳遞一個jquery對象。你正試圖傳遞一個DOM對象來驗證插件,這顯然不起作用。

因此用$('#form1')代替document.getElementById('form1')

現在vaidation會順利發生。