`
wx1569488408
  • 浏览: 79218 次
文章分类
社区版块
存档分类
最新评论

layDate动态绑定多个日期控件初始化的问题

 
阅读更多

layDate实现多个日期绑定

//同时绑定多个

lay('.test-item').each(function(){

    laydate.render({

        elem: this ,

        trigger: 'click'

    });

});

在vue动态生成的页面,使用ajax获取数据,初始化页面的时候使用以上的方法,无法绑定。因为vue还未渲染完成,layDate无法找到dom元素绑定。

解决办法:在vue的watch中监听要绑定渲染的对象,使用$nextTick绑定日期控件。

layDate实现多个日期绑定+vue会出现layDate修改了input的值,但是vue却没有修改过来。下面是范例:

  html代码:

<div class="body_box">
	<ul class="timeList">
		<li v-for="val in data"><span v-text="val.序号"></span><input class="time" type="text" v-model="val.日期"/></li>
	</ul>
</div>

 js代码:

			var vue_data = {
				timeIndex:0,
				data:[
					{
						序号:"1",
						日期:getData()
					},
					{
						序号:"2",
						日期:getData()
					},
					{
						序号:"3",
						日期:getData()
					},
					{
						序号:"4",
						日期:getData()
					},
					{
						序号:"5",
						日期:getData()
					},
				]
				
			}
			var vm = new Vue({
				el:".body_box",
				data:vue_data,
				methods:{
					changeTime:function(index){
						this.timeIndex = index;
					}
				},
			});
			$(function(){
				lay('.time').each(function(){
					laydate.render({
						elem: this,
						trigger: 'click',
						fontmat:"YYYY-MM-dd",
						done:function(val){
							vm.data[vm.timeIndex].日期 = val;
						}
					});
				});
			})
			//日期格式化
			function getData() {
				var data = new Date();
				var h = data.getFullYear();
				var m = data.getMonth()+1;
				var d = data.getDate();
				if(m<10){
					m="0"+m;
				}
				if(d<10){
					d="0"+d;
				}
				return h+"-"+m+"-"+d;
			}

layDate修改了input的值但是却不会修改vue的值,结果如下:

866cb0964c85f080fe872135d9d3806b05e.jpg

我们需要修改代码,最终代码如下:

html代码

		<div class="body_box">
			<ul class="timeList">
				<li v-for="(val,index) in data"><span v-text="val.序号"></span><input class="time" type="text" v-model="val.日期" v-on:click="changeTime(index)"/></li>
			</ul>
		</div>

js代码

			var vue_data = {
				timeIndex:0,
				data:[
					{
						序号:"1",
						日期:getData()
					},
					{
						序号:"2",
						日期:getData()
					},
					{
						序号:"3",
						日期:getData()
					},
					{
						序号:"4",
						日期:getData()
					},
					{
						序号:"5",
						日期:getData()
					},
				]
				
			}
			var vm = new Vue({
				el:".body_box",
				data:vue_data,
				methods:{
					changeTime:function(index){
						this.timeIndex = index;
					}
				},
			});
			$(function(){
				lay('.time').each(function(){
					laydate.render({
						elem: this,
						trigger: 'click',
						fontmat:"YYYY-MM-dd",
						done:function(val){
							vm.data[vm.timeIndex].日期 = val;
							console.log(val)
							console.log(vm.timeIndex);
							console.log(vm.data[vm.timeIndex]);
						}
					});
				});
			})
			//日期格式化
			function getData() {
				var data = new Date();
				var h = data.getFullYear();
				var m = data.getMonth()+1;
				var d = data.getDate();
				if(m<10){
					m="0"+m;
				}
				if(d<10){
					d="0"+d;
				}
				return h+"-"+m+"-"+d;
			}

d1c7a8cf2f3338e1f826bd9299c59013eca.jpg

转载于:https://my.oschina.net/mingriyi/blog/2994999

分享到:
评论

相关推荐

    layDate多款日期时间控件

    2. 初始化插件:通过JavaScript调用layDate方法,为需要的元素添加日期时间选择功能。 ```javascript laydate.render({ elem: '#yourInputId' // 绑定的元素,一般为input }); ``` 二、layDate的主要功能 1. 基本...

    laydate独立版日期控件源码及demo.zip

    在layui官方文档中,你可以找到更多layDate的方法和选项,如`laydate.render()`用于初始化日期控件,`laydate.config()`用于全局配置,以及`laydate.parse()`和`laydate.format()`用于日期解析和格式化等。...

    layDate日期控件

    在这个例子中,`elem`参数指定了需要绑定layDate的元素,`laydate.render()`则用来初始化日期控件。 总结来说,layDate是一个强大且易用的前端日期插件,适用于各种类型的Web应用,提供丰富的功能和高度的定制性,...

    laydate时间控件及触发时间校验事件

    在HTML中创建一个元素作为日期选择器的触发点,然后通过JavaScript调用laydate的`laydate.render()`方法进行初始化配置。 ```html &lt;!DOCTYPE html&gt; &lt;link rel="stylesheet" href="laydate.css"&gt; ...

    日期控件,根据网上laydate控件整理的Demo

    2. **初始化调用**:通过JavaScript代码调用laydate函数,传入配置对象来启动日期控件。 ```javascript laydate.render({ elem: '#test' //指定元素,可以是ID、DOM对象、选择器 ,type: 'datetime' //类型,默认...

    laydate,最简单的js时间控件

    同时,它支持多种初始化方式,如直接绑定元素、动态生成、自定义配置等,满足不同需求。 2. **丰富的主题样式**:laydate内置多套皮肤,可以适应不同的界面风格,同时也支持自定义皮肤,满足个性化需求。 3. **多...

    使用layui日期控件laydate对开始和结束时间进行联动控制的方法

    在本文中,我们将深入探讨如何使用layui框架中的日期控件laydate实现开始和结束时间的联动控制。这种功能常见于需要用户输入一个时间段的场景,例如预约、计划设定等,确保用户选择的结束时间在开始时间之后。 首先...

    JS日期插件,日期控件[方便好用]

    2. **初始化插件**:通过JavaScript调用laydate方法,并传入配置对象,初始化日期插件。 3. **绑定元素**:指定一个元素作为日期插件的触发点,例如一个输入框。 4. **处理返回值**:设置选择日期后的回调函数,...

    web日期控件,选择时间插件

    在描述中提到的“联动插件”通常是指多个控件之间存在相互影响的交互效果。在日期时间选择中,这可能体现在以下场景: - **范围选择**:用户可以选择一个起始日期和结束日期,两个日期控件间存在联动,确保起始日期...

    简洁的layDate时间控件

    6. **多实例化**:在一个页面上,你可以创建多个layDate实例,分别绑定到不同的输入框,每个实例都可以独立配置。 7. **范围选择**:layDate支持选择日期范围,只需将两个输入框通过`range`参数连接,如`'yyyy-MM-...

    多个js实现的日历控件

    步骤包括引入JS库、设置配置项、绑定到特定元素、调用初始化函数等。 6. **优化与兼容性**:为了保证在各种浏览器和设备上运行良好,开发者需要注意对旧版本浏览器的支持,以及对触摸设备的优化。此外,考虑到性能...

    layui-laydate时间日历控件选择特效.zip

    例如,如何引入laydate的CSS和JS文件,如何初始化控件,如何设置默认值,以及如何处理选择后的回调函数等。 3. 132677725538624852: 这个文件名看起来不像常规的文本或代码文件,可能是一个示例代码、JSON数据...

    layout时间控件

    在以上代码中,`laydate.render()`方法用于初始化时间控件,`elem`参数指定了要绑定的时间控件所在的DOM元素。 总的来说,layDate-v5.0.9作为一个高效的时间控件解决方案,提供了丰富的功能和高度的可定制性,使得...

    layDate.zip

    - 避免在动态生成的元素上直接使用layDate,应在其加载完成后进行初始化。 - 在配置参数时,要理解每个选项的作用,避免造成不必要的冲突或错误。 - 注意性能优化,如在不需要时及时销毁layDate实例。 7. **...

    laydate.zip

    2. **快速初始化**:通过简单的配置项即可快速初始化控件,如`laydate({})`,并能自定义显示样式和格式。 3. **自定义面板布局**:允许开发者根据需求调整日期面板的布局,如改变日期单元格的大小、颜色等。 4. **...

    js日历控件,非常好

    2. **初始化控件**:在JS代码中,使用laydate提供的API进行初始化。例如,`laydate.render(options)`,其中`options`是一个包含配置项的对象,可以设置显示模式、日期范围、默认值等。 3. **事件绑定**:如果需要...

    js layDate日历控件特效代码

    在压缩包中,`使用帮助.txt`可能包含了layDate的详细使用教程和常见问题解答,包括如何安装、初始化、配置参数等信息。而`.url`文件可能是指向layDate官方网站或相关资源的快捷链接,可以帮助开发者获取更多更新和...

    lay日历控件

    例如,你可以这样初始化一个laydate实例: ```javascript layui.use('laydate', function(){ var laydate = layui.laydate; // 基础日期选择 laydate.render({ elem: '#test1' // 绑定元素 }); // 范围...

    一个jquery的生日选择插件

    1. **初始化**:在页面加载完成后,使用jQuery选择器找到需要绑定生日选择器的元素,然后调用插件方法进行初始化。 2. **UI构建**:创建一个日历或下拉框的结构,可以是静态HTML,也可以是通过jQuery动态生成。插件...

    强大的js时间控件、自带时分秒、多种皮肤、颜色、简单易用

    在实际使用laydate时,开发者首先需要引入laydate的JavaScript和CSS文件,然后通过调用laydate的方法来初始化控件。例如,一个简单的用法是在HTML中添加一个input元素,然后通过JavaScript设置laydate的配置项: ``...

Global site tag (gtag.js) - Google Analytics