我有一個ASP.NET的DropDownList稱爲#ddlDateRange包含幾個項目。在下拉列表可能的值是:jQuery的失效鏈接,從下拉列表
Year - Current
Year - Previous
Year - Custom
我有兩個文本框稱爲txtStartDate和txtEndDate填充有基於什麼用戶從下拉菜單中選擇值。 (即txtStartDate = '01-01-2010'和txtEndDate = '12-31-2010'),如果用戶選擇年份 - 上一個。
我也有兩個日曆控件的文本框的右側。這些jQuery的日曆控件允許最終用戶可以選擇自定義日期範圍IF他們選擇自定義日期。該頁面的jquery部分是:
$("#<%#ddlDateRange.ClientID%>").blur(function() {
var value = $('#<%#ddlDateRange.ClientID%>').val();
var lowerCaseValue = value.toLowerCase();
if (lowerCaseValue.indexOf('custom') > -1) {
alert('You selected custom date range: ' + lowerCaseValue);
// enable the calendar controls
} else {
alert('You DID NOT select a custom date range: ' + lowerCaseValue);
// disable the calendar controls
// .dp-choose-date
$("a").click(function(e) {
alert('howdy!');
e.preventDefault();
});
}
});
該代碼在else塊中正常工作。我想禁用具有「dp-choose-date」類的錨標記。
<div class="caption">Start Date:</div>
<div class="dateCell">
<input name="ctl00$Tabs$Panel1$txtStartDate" type="text"
id="ctl00_Tabs_Panel1_txtStartDate" class="date-pick"
style="width:125px;" />
<a href="#" class="dp-choose-date" title="Choose date">Choose date</a>
</div>
<br />
我知道我可以使用的preventDefault上的超鏈接,當點擊,以防止默認動作,但警報(「你好」)當我嘗試在Firebug調試永遠不會被解僱了。我認爲原因是下拉失去,因爲我沒有點擊鏈接右邊後集中這是有意義的。
所以我的問題是,我該如何禁用鏈接?我也試過:
$("a .dp-choose-date").click(function(e) {
alert('Howdy!');
e.preventDefault();
});
作爲我的選擇。但我仍然可以點擊我不想要的鏈接。在呈現的標記中,文本框中使用的類「date-pick」生成具有「dp-choose-date」屬性的錨標記,所以我不確定是否可以切換此類。
如果任何人有任何建議,我所有的耳朵...
您的代碼不,不是因爲你生產什麼工作。這更多的是由於我沒有完全理解出現在其旁邊的底層日曆彈出窗口。然而,你確實給我提供了足夠的啓發,我確實得到了與工作非常相似的東西,所以無論如何我會給你信用的。 – coson 2011-04-20 20:12:32
很高興知道......我仍然將點擊處理程序帶出模糊事件,因爲我的答案中提到了問題 – locrizak 2011-04-20 20:14:16