2011-05-24 67 views
0

我有一個包含日期字段的長項目列表。允許jQuery將datepicker分配給datepicker類的所有項目正在創建一個彈出腳本(,腳本運行很長時間會產生什麼效果,是否要停止腳本,是或不是)更不用說提交文件需要一段時間了。當我們刪除datepicker類時,頁面幾乎立即被渲染。所以,我想要做的是在輸入字段中日期通常會填充觸發器(鏈接或圖形),可以點擊觸發日期選擇器彈出日曆。這樣,我們只需要在實際需要的字段上提供彈出式日曆。通過函數觸發jquery datepicker

ID不可用,只有名稱屬性是。

<tr> 
    <td><input type='text' name='StartDate' /> <span onclick='ShowCalendar()'>Calendar</span></td> 
    <td>other fields</td> 
    <td>more fields</td> 
    </tr> 
+0

「看」而這個鏈接的功能就是我心目中卻是實現不會工作,因爲名單是這麼長的路。 http://jqueryui.com/demos/datepicker/icon-trigger.html – HPWD 2011-05-24 16:14:11

+0

關於這個問題的任何其他想法?我的話題有一種停頓...... – HPWD 2011-05-24 20:40:46

回答

0

我試過如下:

<script type="text/javascript"> 
    function createDatepicker(input) { 
     $(input).datepicker().datepicker("show"); 
    } 
</script> 

<input type="text" name="someText" /><br /> 
<input type="text" name="someDate" onclick="createDatepicker(this)" /><br /> 
<input type="text" name="someText" /><br /> 
<input type="text" name="someDate" onclick="createDatepicker(this)" /><br /> 

利用這個答案,我構建了上述解決方案: How to run date picker on the first onclick event?

+0

你的「循環」不在表格標籤中,IE在渲染表格時出了名的慢。幾百個可能會好起來,但我們正在談論接近10k行。 – HPWD 2011-05-24 17:18:19

+0

你可以嘗試其他選擇器類型: $( 「[name $ = Date]」).datepicker(); – 2011-05-24 17:51:30

+0

我被告知我們不能使用選擇器,我們必須使用函數:( – HPWD 2011-05-24 20:01:17

0

你可以做的就是使用「this」關鍵字將當前元素傳遞給你的ShowCalendar函數。然後,您可以使用它作爲參考,通過使用jQuery函數遍歷dom來查找相應的日期字段。在你的例子中,你可以使用prev()函數。

<tr> 
<td><input type='text' name='StartDate' /> <span onclick='ShowCalendar(this)'>Calendar</span></td> 
<td>other fields</td> 
<td>more fields</td> 
</tr> 
+0

函數的外觀如何?這是我迄今爲止的但它不起作用。由於不工作,我的意思是日曆沒有出現。功能ShowCalendar(el,nm,ordr){alert(el +''+ nm +''+ ordr); \t \t // \t this,'suggestedlivedate',#ordr#) \t $(「#」+ nm).datepicker(); }' – HPWD 2011-05-24 17:19:52

+0

嘗試此功能ShowCalendar(el,nm,ordr) { \t var datefield = $(el).prev(); \t datefield.datepicker(); } – AlbertVo 2011-05-24 17:26:10

+0

我看到你要去哪裏,但它沒有奏效。 :( – HPWD 2011-05-24 20:01:46

0

你需要在頁面加載您的日期選擇器的文件。然後使用這樣的東西 在下面的代碼中「todo_date」是一個textfield id,用於觸發jquery datepicker。

$("#todo_date").datepicker(); 
function myFunc(){ 
    $("#calendar_img").click(function(e) { 
    $("#todo_date").datepicker("show"); 
    }); 
} 

希望這有助於