2015-10-15 62 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)); 
     } 
    }); 

希望这会帮助你。