2013-11-01 59 views
3
$(document).ready(function() { 
    $('#ctl00_ContentPlaceHolder1_btnDisplayReport').click(function() { 
     if ((new Date($('#ctl00_ContentPlaceHolder1_txtStartDateFrom').val()) > new Date($('#ctl00_ContentPlaceHolder1_txtStartDateTo').val())) && $('#ctl00_ContentPlaceHolder1_txtStartDateTo').val() != "") { 
      alert("Start date cannot be greater than end date."); 
      return false; 
     } 

     if (new Date(($('#ctl00_ContentPlaceHolder1_txtCompletionDateFrom').val()) > new Date($('#ctl00_ContentPlaceHolder1_txtCompletionDateTo').val())) && $('#ctl00_ContentPlaceHolder1_txtCompletionDateTo').val() != "") { 
      alert("Completion start date cannot be greater than completion end date."); 
      return false; 
     } 
    }); 

    $('.dateverification>input').each(function() { 
     $(this).change(function() { 
      temp = $(this).attr("id"); 
      temp = temp.replace("txt", "lbl"); 
      if ($(this).val()) { 
       $('#' + temp).show(); 
      } 
     }); 

     $('.xlink').click(function() { 
      temp1 = $(this).attr("id"); 
      temp1 = temp1.replace("lbl", "txt"); 
      $('#' + temp1).val(""); 
      temp1 = temp1.replace("txt", "lbl"); 
      $('#' + temp1).hide(); 
     }); 
    }); 
}); 

不燒這爲e jQuery的功能,在FF和鉻作品完美,但在IE10不點火,而不是從$('.dateverification>input').each(function()...工作開始的一部分。我不明白與開發任何JavaScript錯誤工具或我應該知道的東西。基本上,我錯過了一些東西,我無法讓它適用於所有瀏覽器。 (也沒有在我的CodeFile無緩存請求)的jQuery在IE10

<tr> 
    <td style="width: 25%;"> 
     <%= this.GetGlobalResourceObject("CourseCompletionReport.aspx", "Reports.CourseCompletionReport.StartDateFrom") %> 
    </td> 
    <td class="dateverification" style="width: 75%;"> 
     <asp:TextBox ID="txtStartDateFrom" runat="server" SkinID="TextBoxNoneMandatory" autocomplete="off" contentEditable="false"></asp:TextBox> 
     <ajaxToolkit:CalendarExtender ID="defaultCalendarExtender1" Format="MMMM dd, yyyy" runat="server" TargetControlID="txtStartDateFrom" /> 
     <asp:Label ID="lblStartDateFrom" runat="server" Text="x" class="xlink" ></asp:Label> 
    </td> 
</tr> 

這是其中一個部分 - 文本框+ AJAX +壓延標籤,如果有什麼不對的HTML的結構以及..所以,如果你們中的任何一個人都有一個想法,我應該怎麼做才能調試,請回復。提前致謝。

+2

在一個側面說明,請不要寫'$('#ctl00_ContentPlaceHolder1_btnDisplayReport')。click(function(){'..而不是使用它的CssClass或ClientID作爲選擇器,它只是不可靠和真的不是那麼好 – Krishna

+0

我會記住這一點,謝謝爲意見。 – BBekyarov

+0

它意味着tha我對英語的理解是相當低的。我的意思是沒有緩存,已經編輯它。感謝您注意到這一點。 Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache); – BBekyarov

回答

0

我會假設任何問題在IE 10中傳入到IE 11中。我正在運行IE 11,並且基於您提供的腳本和結構,它似乎對我有用。

這是我用過的小提琴。我試圖複製你已經顯示的內容,用你的label替換span元素,因爲那樣會渲染並刪除CalendarExtender,我認爲這不是問題。

http://jsfiddle.net/Sn7p8/9/

你確定你的選擇越來越你期待的要素是什麼?

作爲一個側面說明,這裏是一個普遍的做法的一個例子,用於存儲jquery對象

var Members = 
{ 
    btnDisplayReport: $('#' + <%= btnDisplayReport.ClientID %>), 
    txtStartDateFrom: $('#' + <%= txtStartDateFrom.ClientID %>), 
    txtStartDateTo: $('#' + <%= txtStartDateTo.ClientID %>), 
    txtCompletionDateFrom: $('#' + <%= txtCompletionDateFrom.ClientID %>) 
} 

然後,您可以使用會員對象來訪問元素

$(document).ready(function(){ 
    Members.btnDisplayReport.click(function(){ 
    ... 
    }); 
});