jquery datepicker 点击日期控件不会自动更新input的值

页面代码:
<link href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>	<link href="/static/css/main.css" rel="stylesheet" type="text/css"/><script src="http://code.jquery.com/jquery-1.8.3.js"></script><script type="text/javascript" src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script><!--<script type="text/javascript" src="/static/js/jquery-1.7.2.js"></script>--><script language="javascript" type="text/javascript" src="/static/js/nav.js"></script><script language="javascript" type="text/javascript" src="/static/seg/js/report.js"></script>
<script type="text/javascript"> $(function(){ $( ".datepicker").datepicker({dateFormat: 'yy-mm-dd'}); //$.iniNav("engagement"); });</script>

  

最终效果如图所示:

但是放在engagement页面里的时候,点击选择每天的时候,不能自动更新到input里面去。单步调试代码,发现,input能够定位到,而且代码执行的过程中有获取到点击的按钮对应的当天的日期。
在jqueryUI里对应的代码块儿如下:
	/* Update the input field with the selected date. */_selectDate: function(id, dateStr) {var target = $(id);var inst = this._getInst(target[0]);dateStr = (dateStr != null ? dateStr : this._formatDate(inst));if (inst.input)inst.input.val(dateStr);this._updateAlternate(inst);var onSelect = this._get(inst, 'onSelect');if (onSelect)onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);  // trigger custom callbackelse if (inst.input)inst.input.trigger('change'); // fire the change eventif (inst.inline)this._updateDatepicker(inst);else {this._hideDatepicker();this._lastInput = inst.input[0];if (typeof(inst.input[0]) != 'object')inst.input.focus(); // restore focusthis._lastInput = null;}},

  关键的赋值代码在  inst.input.val(dateStr);而且这句执行结束的时候,input的value的确被改掉了成为最新的,但是input里看不到任何效果。

原因在哪?
我只能查看返回的input的context哪里不同,进行对比:
能正常显示点击的最新日期的input:

                                            

                                                                   

区别:

  baseURL:

  1. clientHeight: 20
  2. clientLeft: 1
  3. clientTop: 1
  4. clientWidth: 165

  jQuery183017439375561662018

  1. offsetHeight: 22
  2. offsetLeft: 81
  3. offsetParent: <li>
  4. offsetTop: 1
  5. offsetWidth: 167
但是我手动给input指定宽高不能解决问题,还是逐步调试,发现我每次clone的demo其实不是页面里的那个demo,而是绑定了datepicker以后的,或者说经过”修改“的demo-div。
于是将demo移到content_wrapper的外面(因为我每次重新绘图要把原来的div),用$('.demo')直接找到用来被克隆的div。
然后新的问题出现了,每次我点击新生成图表上的日历控件都会定位到我的demo上面的input.... 见网上有说是因为focus的缘故....

后来发现,其实这个问题是由我的代码自己造成的,每次clone过去的代码是包含了datepicker的事件的,也就是说如果我在创建新的graphBox,(执行graphBox.prototype._createBox以后)再去绑定datepicker事件就不会出现这样的情况了。。。改成现在这样:

graphBox = function(opt){this.content_wrapper = opt.content_wrapper;this.demo_graph_body = opt.demo_graph_body;this.bookmarkID = opt.bookmarkID;this._createBox();	this._createDatePicker();			this._handleActions();	this._drawChart();}

  其中this._createDatePicker();   的代码如下:

graphBox.prototype._createDatePicker = function(){$(this.graph_body).find(".datepicker").datepicker({dateFormat: 'yy-mm-dd'});	
}

  这里只设置了datepicker的dateFormat: 'yy-mm-dd',未做其他任何设定。

通过测试,ok了。。。。

转载于:https://www.cnblogs.com/xiami303/archive/2012/12/21/2828416.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ArcGIS API for Silverlight中legend控件显示图例问题

转自http://www.gisall.com/html/34/9534-5141.html 在使用ArcGIS API for Silverlight进行地图展示应用的时候&#xff0c;我们都会设置地图图层列表的图例&#xff08;该图例包含有图层名称和图层符号&#xff09;&#xff0c;但是在使用API时却出现了图例无法正常显示&#…

一个b+树库存放多少索引记录

MySQL中InnoDB页的大小默认是16k。也可以自己进行设置。&#xff08;计算机在存储数据的时候&#xff0c;最小存储单元是扇区&#xff0c;一个扇区的大小是 512 字节&#xff0c;而文件系统&#xff08;例如 XFS/EXT4&#xff09;最小单元是块&#xff0c;一个块的大小是 4KB。…

移动发布手机病毒警示信息 发现六种新型病毒

4月17日消息&#xff0c;近期&#xff0c;中国移动监测发现“伪系统杀毒”、“捆绑恶魔”和“伪软件管家”等六款新型手机病毒&#xff0c;造成客户后台自动联网、点播手机游戏类业务、发送垃圾短信并屏蔽10086短信提醒&#xff0c;严重侵害客户权益。 中国移动介绍&#xff0c…

检索函数retrieve

转载于:https://www.cnblogs.com/flowjacky/archive/2012/12/28/2836729.html

Android 安全机制概述

1 Android 安全机制概述 Android 是一个权限分离的系统 。 这是利用 Linux 已有的权限管理机制&#xff0c;通过为每一个 Application 分配不同的 uid 和 gid &#xff0c; 从而使得不同的 Application 之间的私有数据和访问&#xff08; native 以及 java 层通过这种 sandbox …

mysql8.0为啥移除查询缓存

1&#xff0c;对于经常更新的表缓存容易过期不容易控制 2&#xff0c;sql要完全一样才能命中缓存 3&#xff0c;为了节省空间 4&#xff0c;mysql缓存在分库分表的情况下是不起作用的 5&#xff0c;执行sql时候有触发器&#xff0c;自定义函数&#xff0c;缓存也是不起作用…

继承专题

【1】继承及访问权限 &#xff08;1&#xff09;理论知识 <1> 基类与派生类。基类、父类、超类均是指被继承的类&#xff1b;派生类、子类是指继承于基类&#xff08;父类、超类&#xff09;的类。 <2> 在C中使用冒号表示继承。如下代码片段&#xff1a; 1 class A…

BootCDN——React入门学习

首先下载:react依赖&#xff1a;react.js、react-dom.js、babel.js 这种方式容易出错&#xff0c;所以不使用这个 使用下面方式正真的用法;Babel 中文网 Babel - 下一代 JavaScript 语法的编译器

MySQL学习笔记17:别名

在查询时&#xff0c;可以为表和字段取一个别名。这个别名可以代替其指定的表和字段 为表取别名 mysql> SELECT * FROM department d-> WHERE d.d_id1001; -------------------------------------------- | d_id | d_name | function | address | -----------…

redis事务命令复习

命令复习&#xff1a; multi&#xff1a;开启事务 开启事务之后&#xff0c;讲要操作的命令都放到了QUEUED&#xff08;queued&#xff09;队列里&#xff0c;然后通过EXEC命令一起提交。 对于WATCH命令&#xff1a; 开启了事务&#xff0c;没有提交&#xff0c;这时候又有一…

STM32示波器 信号发生器

关于stm32的示波器&#xff0c;网上以经有很多了。这里还是想把自己的设计思想发表出来。这个项目已经准备了很久。这里首先要感谢以前的团队&#xff0c;非常感觉陈师和覃总两位经验丰富的嵌入式工程师&#xff0c;获得了不少多方面的考虑。如果不是工作调整等原因&#xff0c…

FlashPaper安装及使用方法

FlashPaper安装及使用方法 一、FlashPaper的安装 第一步&#xff1a;下载FlashPaper2.2安装包 点击下面链接下载FlashPaper2.2 FlashPaper2.2下载 第二步&#xff1a;安装FlashPaper2.2 将zip压缩包解压至磁盘的某一文件夹中&#xff0c;注意&#xff0c;此版本FlashPaper为了能…

redis的lua脚本解决原子操作

使用一个简单的工具类 代码示例&#xff1a;

内存管理的使用规则

http://www.cnblogs.com/wmj/archive/2012/07/26/iOS%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86.html 转载于:https://www.cnblogs.com/qiqibo/archive/2013/01/06/2847311.html

redis集群异步复制造成锁丢失(分布式锁)

在redisConfig配置类注入bean Configuration public class RedisConfig {Beanpublic RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){RedisTemplate<String, Object> template new RedisTemplate<String, Object>();templat…

jquery 简单日历

今天试着用jquery 写了一个日历&#xff0c;等有时间研究一下别人写的思路&#xff0c;上代码&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html…

redis内存默认值调整

redis一般设置物理内存的3/4 redis.conf配置文件修改maxmemory这个值来调整redis的内存大小 info memory命令可用查看redis内存使用情况 info可用查询redis下的各种命令

表示探索、探究的几个词

explore, exploit, investigate转载于:https://www.cnblogs.com/burellow/archive/2013/01/09/2853075.html

linux lvm 磁盘管理

附加:lvm这是一个新系统,依然debian 6.0.6,走起 我在装系统的时候手动进行了分区(之前都是自动分区并配置lvm,感觉不怎么合适),三个主分区:/boot,/,/swap 预留了30G的空间,其实是我以一个20G的debian系统原版为backingfile&#xff08;qemu&#xff09;创建的一个50G的磁盘&…