2010-04-23 88 views
0

我在母版頁一個jQuery表單驗證,它工作正常,我得到了從這篇文章的工作:http://www.dotnetcurry.com/ShowArticle.aspx?ID=310jQuery的表單驗證:驗證腳本指定外部

我的問題是:如果我放在.js文件外部和引用添加到我的網頁,然後它不工作...它說對象預期

這裏是如何我做:

在我的內容頁

(我使用母版頁,asp.net)

加入我的騙局10噸頁:

<script src="myform_validation.js" type="text/javascript"></script> 
<script type="text/javascript"> 

    $(document).ready(function() {  
     ValidateMe(this); 
    }); 
</script> 

下面是在外部.js文件:

function ValidateMe() { 

      $("#aspnetForm").validate({ 
       rules: 
       { 
         <%=TextBox1.UniqueID %>: 
         { 
          maxlength:1, 
          //minlength: 12, 
          required: true 
         }, 
         <%=TextBox2.UniqueID %>: 
         { 
          minlength: 12, 
          required: true 
         }, 
         <%=TextBox3.UniqueID %>: 
         { 
          minlength: 12, 
          required: true 
         }//, 
//      
       },   
       messages: 
        { 
         <%=TextBox1.UniqueID %>: 
         { 
          required: "Enter your firstname", 
          minlength: jQuery.format("Enter at least {0} characters") 
         }, 
         <%=TextBox2.UniqueID %>: 
         { 
          required: "Please enter a valid email address", 
           minlength: "Please enter a valid email address" 
         } , 
          <%=TextBox3.UniqueID %>: 
         { 
          required: "Enter your firstname", 
          minlength: jQuery.format("Enter at least {0} characters") 
         } 

        } , 


      success: function(label) { 
      // set &nbsp; as text for IE 
      label.html("&nbsp;").addClass("checked"); 
     } 

     }); 
     } ; 
+0

您是否在外部js中包含了jquery引用? – melaos 2010-04-23 14:56:35

回答

1

我懷疑它,因爲你的服務器標籤(<%=TextBox1.UniqueID%>)不被服務器處理。默認情況下,IIS不處理.js文件。

+0

+1。是的,這可能是,沒有看到這個想法:) – ntziolis 2010-04-23 15:04:23

1
  1. 對於初學者,嘗試始終使用與jQuery相同的 。 有時候你使用jQuery的有時 $,我會建議 使用$一路只是 由於其短,衆所周知 (和IM懶惰;))。
  2. 雖然它沒有參數,但您仍將其傳遞到 外部ValidateMe函數,即使是 。你確定 確定你正確提取了功能 ?
  3. 並始終確保所有js文件 被引用,然後使用其中的函數啓動 。
+0

感謝您的提示,但我沒有看到我在哪裏使用JQuery,我也喜歡使用$ :) 關於您的#2)我正在嘗試不同的方法和非他們的作品,傳遞參數,並且不傳遞參數 – 2010-04-23 15:29:36

+0

@Abu - 例如:jQuery.format(「至少輸入{0}個字符」) – ntziolis 2010-04-26 12:49:24

+0

哎呀,我明白了:) – 2010-04-26 14:08:11

1

你爲什麼試圖把javascript放到外部文件中?該腳本特定於頁面上的控件,因此請將其留在那裏。否則,您需要額外的文件下載來爲頁面添加延遲。

+0

@Daniel,我這樣做的原因是因爲它會在頁面上顯得雜亂無章,只是想保持整潔和簡單。 – 2010-04-23 16:07:42