2013-07-29 20 views
0

我使用jQuery驗證插件 - v1.11.1和jQuery 1.10.2,但下面的代碼不能在IE 8中工作。它在IE9和更高版本中工作正常以及Chrome等其他瀏覽器。jQuery驗證插件版本1.11.1不工作在資源管理器8

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> 
    <script src="Scripts/jquery_validate.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $('#btn').click(function() {     
       $("#form1").validate({      
        rules: { 
         <%= txt.UniqueID %>: "required" 
        }, 
        messages: { 
         <%= txt.UniqueID %>: "Please enter QTY" 
        }          
       }); 
      }); 
     });  
    </script> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 
    ID 
    <asp:TextBox runat="server" ID="txt" ClientIDMode="Static" /> 
    <asp:Button Text="Test" runat="server" ID="btn" ClientIDMode="Static" />  
</asp:Content> 

編輯:。

我之所以包裹的validate()內$( '#BRN')點擊(函數(){})事件是我從GridView的RowCommand另一回傳Event.Is還有另一種方式來調用jquery validate()只有當按鈕被點擊時?

+0

你嘗試過在封閉 '<%= txt.UniqueID%>'引號? –

+0

我在這裏看到類似的問題,但看起來你有更新的版本嗎? http://stackoverflow.com/questions/5942327/jquery-validation-not-working-in-ie7-ie8。 – christiandev

+0

你誤解了'.validate()'在做什麼。這只是初始化程序。如果您只是想在每次點擊時「測試」表單,請使用'.valid()'方法。您仍然需要在頁面加載時首先初始化插件。 – Sparky

回答

3

你的代碼錯誤地包裝.validate()一個click處理器中......

$('#btn').click(function() {     
    $("#form1").validate({      
     ...        
    }); 
}); 

這是錯誤的,因爲.validate()只是初始化插件的方法,所以沒有理由將其包裝內click處理程序。提交按鈕的click已被插件自動捕獲並處理。

這是使用.validate()方法有道...

$(document).ready(function() { 

    $("#form1").validate({ // initialize the plugin     
     // rules & options       
    }); 

}); 

工作DEMO使用jQuery 1.10.2和jQuery驗證1.11.1,隨着IE 8測試http://jsfiddle.net/jsDzU/show

使用安裝在Windows XP SP3中的實際版本的IE 8進行測試。永遠不要假設在另一個IE版本中的「IE 8模式」是真實事物或「模擬器」的準確表示 - 事實並非如此。 Microsoft provides free VPC hard drive images for accurate testing in each IE version

+0

我正在使用jQuery 1.10.2和jQuery驗證插件 - v1.11.1,並有同樣的麻煩。你的例子在ie8上不起作用。即使輸入爲空,警報也會觸發。 – tylik

+0

ie7更糟糕。有一個JavaScript錯誤,腳本只是凍結。我認爲這是交叉瀏覽器兼容。有沒有辦法解決這個問題? – tylik

+2

@tylik,我不確定你在做什麼,但是我的鏈接已經在運行在Windows XP中的IE 8的真實版本中進行了測試......並且工作正常。如果您在另一個版本的IE中以「IE8模式」進行測試,那麼您的測試方法是錯誤的。各種「IE模式」並不能準確表示這些舊版本的行爲。 – Sparky

0

是的,它的效果與 「jQuery的1.4.4.min.js」

可以測試在這裏

demo

相關問題