2014-07-11 34 views
0

所以在這個母版頁的網站,我已經包含下面的母版,使所有的文本框datapicker包含在他們的ID字「日期」jQuery選擇在ASP.NET錯誤控制激活的WebForms

<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js" type="text/javascript"></script> 
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="Stylesheet" type="text/css" /> 

<script type="text/javascript"> 

    function pageLoad(sender, args) { 
     $(document).ready(function() { 


      $("[id*='Date']").datepicker({ 
       showOn: 'button', 
       buttonImageOnly: true, 
       buttonImage: 'http://jqueryui.com/resources/demos/datepicker/images/calendar.gif' 
      }); 
      $("[id*='Date']").click(function() { 
       $("[id*='Date']").datepicker('show'); 
      }); 
     }); 
    } 
</script> 

這個炒作很好,只有一個這樣的文本框的網頁。但是,在具有多個日期時間文本框(txtStartDate和txtCompletionDate)的頁面上,如果單擊第一個文本框,則第二個文檔會變得焦點並隨後接收從日曆彈出窗口中選擇的值。如果我點擊文本框旁邊的日曆圖標或者選擇了第二個文本框,則不會發生此問題。如果我在選擇器中專門聲明瞭文本框ID的全名,則不會發生此問題。

+1

爲什麼你使用'$(文件)。就緒(函數(){'在一個函數? – Satpal

+0

也分享你的HTML代碼 –

+0

@Satpal好的問題,我最初這樣做,使jquery代碼也可以在回發上工作,但看起來像我可以刪除$(document).ready函數,這仍然工作正常,謝謝! –

回答

0

您需要使用this,它指的是在事件處理程序中調用事件的元素。

使用

$("[id*='Date']").click(function() { 
    $(this).datepicker('show'); 
}); 

,而不是

$("[id*='Date']").click(function() { 
    $("[id*='Date']").datepicker('show'); 
}); 
+0

快速和正確的答覆。沒有想到它,但谷歌並沒有幫助,也不奇怪LY –