在Grails中添加时间控件标签

在Grails中添加时间控件标签,以下代码是防止标签.groovy文件中

class MyTagLib {
	static namespace = "my"
/**
	* 该标签为更新预警所用,day month year 设定需要更新的时间
	*/
   def needChangeTimePicker={attrs,body->
	   def name=attrs.name
	   def format=attrs.format
	   def value=attrs.value
	   def precision=attrs.precision  //year month day hour minute
	   def day=attrs.day
	   def month=attrs.month
	   def year=attrs.year
	   Calendar cad = Calendar.getInstance();
	   def i=10
	   if(!precision){
		   precision="day"
	   }
	   if(precision=="year"){
		   i=4
	   }else if(precision=="month"){
		   i=7
	   }else if(precision=="day"){
		   i=10
	   }else if(precision=="hour"){
		   i=13
	   }else if(precision=="minute"){
		   i=16
	   }
	   
	   if(!format){
		   format="yyyy-MM-dd"
	   }
	   if(day || month || year){
		   if(day){cad.add(Calendar.DAY_OF_MONTH, (int)day);}
		   if(month){cad.add(Calendar.MONTH, month.toInteger());}
		   if(year){cad.add(Calendar.YEAR, (int)year);}
		   value=new java.text.SimpleDateFormat(format).format(cad.getTime())
	   }else{
		   value=new java.text.SimpleDateFormat(format).format(value)
	   }
	   
	   out<<"""
		   <input type='text' id='datepinker_id_${name}' name='datepinker_id_${name}'  value='${value}' class='Wdate' onClick=\"WdatePicker({dateFmt:'${format}'})\" οnchange='checkDate${name}()' readonly='true' />
		   <input type='hidden' id='${name}' name='${name}' value='date.struct' />
		   """
	   switch(i){
		   case 16: out<<"<input type='hidden' name='${name}_minute' id='${name}_minute' />\r\n"
		   case 13: out<<"<input type='hidden' name='${name}_hour' id='${name}_hour' />\r\n"
		   case 10: out<<"<input type='hidden' name='${name}_day' id='${name}_day' />\r\n"
		   case 7:  out<<"<input type='hidden' name='${name}_month' id='${name}_month'/>\r\n"
		   case 4:  out<<"<input type='hidden' name='${name}_year' id='${name}_year'/>\r\n"
	   }
		   
	   out<<"""
		  <script type="text/javascript" src="${request.contextPath}/js/datepicker/WdatePicker.js"></script>
	   
		   <script>
			   function checkDate${name}(){
				   var s=document.getElementById('datepinker_id_${name}').value;
				   //alert(s);
				   var len=s.length;
				   switch(${i}){
					   case 16:document.getElementById('${name}_minute').value=s.substr(14,2);
					   case 13:document.getElementById('${name}_hour').value=s.substr(11,2);
					   case 10:document.getElementById('${name}_day').value=s.substr(8,2);
					   case 7:document.getElementById('${name}_month').value=s.substr(5,2);
					   case 4:document.getElementById('${name}_year').value=s.substr(0,4);
				   }
				   
			   }
		   """
	   if(value){
	  out<<"""
		   checkDate${name}();
		   """
	   }
	  out<<"""
		   </script>
	   """
   }
}

然后在GSP中调用

<my:needChangeTimePicker month="2" name="needChangeTime"  value="" />
month=2是在今天的时间上加上2个月,其中日,年,都可以设定


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值