2015-10-15 71 views
0

我有以下的HTML表格佈局:每輸入字段的錶行,但第一行的所有輸入字段是隻讀如何只讀設置爲一個datepicker

<table id="mytable"> 
<tbody> 
<tr><td rowspan="2">Row text</td><td><input type="text" value="" readonly /></td><td><input type="text" value="" readonly /></td><td><input type="text" value="" readonly /></td></tr> 
<tr><td><input type="text" value="" /></td><td><input type="text" value="" /></td><td><input type="text" value="" /></td></tr> 
</tbody> 
</table> 

jQuery的datepicker連接。現在,當用戶選擇從第二排的任何日期將通過jQuery的添加30天選定的日期,並把它放到第一行的相應的輸入域如下:

$('table#mytable > tbody> tr > td > input[type="text"]').datepicker({ 
     dateFormat: 'dd/mm/yy', 
     changeMonth: true, 
     changeYear: true, 
     yearRange: '1900:2016', 
     onClose: function(){ 
      var thisRow = $(this).closest('tr'); 
      var thisCell = $(this).closest('td').index(); 
      var thisDate = $(this).datepicker('getDate'); 
      thisDate.setDate(thisDate.getDate() + 30); 
      thisRow.prev().find('td:eq(' + (thisCell + 1) + ') input[type="text"]').datepicker('setDate', thisDate); 
     }); 
}); 

我在這裏面臨的兩個問題。

1)我想以某種方式設置第一行輸入的日期選擇器,以便它不會在點擊時打開日期選擇器(它僅用於顯示從第二行中選擇的日期+ 30天) 。即第一行的日期選擇器將是隻讀的。

2)是否我的上述代碼

thisRow.prev()找到( 'TD:當量(' +(的ThisCell + 1)+ ')。輸入[類型= 「文本」]')日期選擇器( 'setDate',thisDate);

對於將30天添加到所選日期並在第一行的相應輸入字段中顯示該日期有效?

任何幫助將不勝感激。

回答

0
$('.datepicker').datepicker('disable'); 

其中.datepicker是datepicker的類。

+0

好的,謝謝,它解決了我的第一個問題。但第二個[(2)]仍在等待中。所選日期+ 30天不顯示在第一行的相應單元格上。我認爲我的選擇是不正確的。請幫助解決這個問題。 –

+0

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 – silwar

+0

@silwar'如何設置只讀日期選擇器'? – guradio

0

添加30天到選定的日期,你可以嘗試下面的代碼。

$('table#mytable > tbody> tr > td > input[type="text"]').datepicker({ 
     onClose: function(selectedDate, inst) { 
     var d =new Date(selectedDate); 
     var day=d.getDate(); 
     var month=d.getMonth(); 
     var year=d.getFullYear(); 
     $(this).datepicker('setDate',new Date(year,month,day+30)); 
     } 
    }); 

希望這會幫助你。